错误消息:不知道如何将“dataFrame$column”转换为“Date”类

2024-03-31

我有一个数据框,其中包含 2017 年 10 月的记录。第 6 列将日期作为字符向量。

它看起来是这样的:

> october2017[1:6,1:6]
        V1        V2 V3  V4    V5        V6
1 89108060 IN0000005 P2 RK1 CA1-R 10/1/2017
2 10503818 IN0000014 P2 RK1  CA31 10/2/2017
3 89108152 765000054 P2 RK1  CA31 10/3/2017
4 89108152 765000197 P2 RK1  CA31 10/4/2017
5 89108206 200000162 P2 RK1  CA31 10/5/2017
6 89108206 100001098 P2 RK1  CA31 10/6/2017
> class(october2017$V6)
[1] "character"

实际的数据框比这个大得多。我想要做的是创建一个新列来表示与每个日期匹配的星期几并将其添加到数据框中。如果日期是“10/1/2017”,我希望表示星期几的新列在该行中显示“星期日”。

这就是我想要的数据框的样子:

> october2017[1:6,1:7]
        V1        V2 V3  V4    V5        V6     V7
1 89108060 IN0000005 P2 RK1 CA1-R 10/1/2017 Sunday
2 10503818 IN0000014 P2 RK1  CA31 10/2/2017 Monday
3 89108152 765000054 P2 RK1  CA31 10/3/2017 Tuesday
4 89108152 765000197 P2 RK1  CA31 10/4/2017 Wednesday
5 89108206 200000162 P2 RK1  CA31 10/5/2017 Thursday
6 89108206 100001098 P2 RK1  CA31 10/6/2017 Friday

这是我尝试过的: newcol = 工作日(as.Date(2017 年 10 月 $v6,格式 =“%m/%d/%Y”)) 2017 年 10 月 = cbind(2017 年 10 月,newcol,stringsAsFactors=FALSE)

这是当我尝试运行此代码的第一行时收到的错误消息: as.Date.default(october2017$v6, format = "%m/%d/%Y") 中的错误: 不知道如何将 'october2017$v6' 转换为类“Date”

谁能帮助我理解为什么会发生这种情况?


as.Date是一个使用S3方法调度的函数。也就是实际上有几个函数:

methods("as.Date")
# [1] as.Date.character as.Date.date      as.Date.dates     as.Date.default  
# [5] as.Date.factor    as.Date.numeric   as.Date.POSIXct   as.Date.POSIXlt  
# see '?methods' for accessing help and source code

你打电话时as.Date(x),R 查看第一个对象的类并使用适当的 S3 方法。如果没有找到并且.default函数存在,那么它将被用作“最后的手段”。

如果查看每个方法的源代码,您只会找到字符串"do not know how to convert" in as.Date.default:

as.Date.default
# function (x, ...) 
# {
#     if (inherits(x, "Date")) 
#         return(x)
#     if (is.logical(x) && all(is.na(x))) 
#         return(structure(as.numeric(x), class = "Date"))
#     stop(gettextf("do not know how to convert '%s' to class %s", 
#         deparse(substitute(x)), dQuote("Date")), domain = NA)
# }

如果它是已知类之一(character, date, dates, factor, numeric, POSIXct, or POSIXlt,现在还没有Date or logical-NA),那么它将运行特定的函数(其中都不包含该错误字符串)。这表明您的$v6列是一个不同阶级。没有 MWE,这完全是猜测。

我建议你找到数据的实际类别

class(dataFrame$v6)

并找出如何将其转换为已知版本之一。

Edit

此外,请注意 R 是区分大小写。您的 MWE 使用小写v6但你的列名是大写的。就这样怎么样

october2017$V7 <- weekdays(as.Date(oct$V6, format="%m/%d/%Y"))

当你看着october2017$v6(小写),它返回NULL,这会触发.default的方法as.Date.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误消息:不知道如何将“dataFrame$column”转换为“Date”类 的相关文章

  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • 从 n,k 维矩阵数组中减去 n,k 维矩阵

    如果我有一个数组A A lt array 0 c 4 3 5 for i in 1 5 set seed i A i lt matrix rnorm 12 4 3 如果我有矩阵 B set seed 6 B lt matrix rnorm
  • 如何在 Caret 中绘制随机森林(护林员)树

    我生成了如下所示的随机森林树 并尝试绘制它 但出现错误 我在哪里犯了错误 我怎样才能以正确的方式绘制它 Actmodel lt train Activity Section Author data CB1 method ranger trC
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • 为什么数据帧上的 is.vector 不返回 TRUE?

    tl dr R 中的向量到底是什么 长版 R 中很多东西都是向量 例如 数字是长度为 1 的数值向量 is vector 1 1 TRUE 列表也是一个向量 is vector list 1 1 TRUE 好的 所以列表是一个向量 显然 数
  • R - 计算 bin 中特定值的数量

    我有一个如下所示的数据框 df Value lt c 1 1 0 2 1 3 4 0 0 1 2 0 3 0 4 5 2 3 0 6 Sl lt c 1 20 df lt data frame Sl Value gt df Sl Value
  • 列出 R 数据文件的内容而不加载

    我有时用print load myDataFile RData 当我加载数据文件时列出它的内容 有没有办法列出内容而不加载数据文件中包含的对象 我认为如果不加载对象就无法做到这一点 解决方案可能是使用包装器将 R 对象保存到save 该函数
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • 访问或解析 R 中的 summary() 中的元素

    我运行以下 R 命令来进行 Dunnett 测试并获取摘要 如何访问下面线性假设的每一行 这是摘要输出的一部分 基本上我不知道摘要的结构 我尝试使用名称 但它似乎不起作用 因为我没有看到任何命名属性来提供这一点 library multco
  • 为什么 sapply 的缩放速度比样本大小的 for 循环慢?

    假设我想采用向量 X 2 1 N 并将 e 计算为每个元 素的指数 是的 我认识到最好的方法就是通过向量化 exp X 但这样做的目的是将 for 循环与 sapply 进行比较 我通过逐步尝试三种方法 一种使用 for 循环 两种以不同方
  • 我可以使用哪个 R 函数来查找两条线的交点?

    我刚刚研究了 stackoverflow 上所有的 在 R 中寻找交集 问题 它们要么是关于曲线 要么是关于分布像这个 https stackoverflow com questions 20519431 finding point of
  • sapply - 保留列名称

    我试图总结数据集中许多不同列 变量 的平均值 标准差等 我已经编写了自己的汇总函数 以准确返回我需要和正在使用的内容sapply立即将此函数应用于所有变量 它工作正常 但是返回的数据帧没有列名 我似乎甚至无法使用列号引用重命名它们 也就是说
  • 从 data.frame 在 ggplot 图例中添加信息

    我想在图例中添加信息 哪个传感器具有该值 这是我的代码 z lt data frame a c sensor 1 sensor 2 sensor 3 sensor 4 sensor 5 sensor 6 sensor 7 sensor 8
  • 在r中的某个阈值处破坏 cumsum() 函数

    例如我有以下代码 cumsum 1 100 我想打破它 如果一个元素 i 1 大于3000 我怎样才能做到这一点 因此 而不是这个结果 1 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 15
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 当设置 coord_fixed 时,ggplot/shiny 中的鼠标悬停坐标是错误的

    我正在使用问题中的答案 当您将鼠标悬停在闪亮的 ggplot 上时出现工具提示 https stackoverflow com questions 27965931 tooltip when you mouseover a ggplot o
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso

随机推荐