错误消息:不知道如何将“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”类 的相关文章

  • 在 r 中导出矩阵

    我想在 R 中导出一个矩阵 并保留行和列的名称 当我使用 write table 或 write csv 时 我得到一个带有新列的矩阵 我该如何使用这个功能 感谢您的帮助 您不会获得新列 行名称将保存为文本文件中的第一列 因此 您可以指定在
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 是否可以通过扫描从控制台读取而不回显字符?

    这是一个示例函数 passwordEntry lt function cat Enter your password pwd lt scan n 1 what character quiet TRUE invisible pwd 并测试该功
  • 使用 broom 和 tidyverse 总结 r 平方游戏

    我发布了一个问题here https stackoverflow com questions 48627287 getting adjusted r squared value for each line in a geom smooth
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • 重复测量引导统计数据,按多个因素分组

    我有一个看起来像这样的数据框 但显然还有更多行等 df lt data frame id c 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 cond c A A B B A A B B A A B B A A B B co
  • 在 R 中向散点图添加线条

    如何向图表添加线条 我做了以下 dat lt data frame xvar 1 20 rnorm 20 sd 10 yvar 1 20 rnorm 20 sd 10 zvar 1 20 rnorm 20 sd 10 plot dat 1
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 如何使用 usmap 标记数字而不是名称?

    我知道 usmap 有一个选项label in plot usmap 我想标记一些数字 而不是状态名称 我想 usmap 中应该有与州质心坐标相关的数据 但我不知道如何找到它 如果我能得到 坐标然后我可以用它来标记数字geom text 这
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 朴素贝叶斯分类器仅基于先验概率做出决策

    我试图根据推文的情绪将推文分为三类 买入 持有 卖出 我正在使用 R 和包 e1071 我有两个数据框 一个训练集和一组需要预测情绪的新推文 训练集数据框 text sentiment this stock is a good buy Bu
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use

随机推荐