全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1507 6
2021-05-16
在用lubridate这个包提取日其中的年月日,利用如下代码在数据框中生成新的变量却报错,想请问下是什么问题?
rawdata <- transform(rawdata,
                     DateYear = year(date),
                     DateMonth = month(date),
                     DateDay = day(date)
)

Error in as.POSIXlt.default(x, tz = tz(x)) :
  不知如何将'x'转换成“POSIXlt”类别

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2021-5-16 09:16:16
你可能需要检查一下你的date是什么变量,如果不是日期的话,用as.Date进行转换
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-5-16 09:31:24
owenqi 发表于 2021-5-16 09:16
你可能需要检查一下你的date是什么变量,如果不是日期的话,用as.Date进行转换
是日期兄弟,已经用as.date转换了,这个我如果不用transform生成的话,我每个变量单独生成:DateYear <- year(date) 然后再用cbind合并,就不会报错了,我先试试你的兄弟
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-5-16 11:35:36
owenqi 发表于 2021-5-16 09:16
你可能需要检查一下你的date是什么变量,如果不是日期的话,用as.Date进行转换
兄弟,还是报错了。
rawdata <- rawdata %>%
  as_tibble() %>%
  mutate(DateYear = year(date),
         DateMonth = month(date),
         DateDay = day(date))
错误: Problem with `mutate()` column `DateYear`.
i `DateYear = year(date)`.
x do not know how to convert 'x' to class “POSIXlt”
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-5-16 11:57:15
你可以贴出部分数据,这样方便查看为什么报错。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-5-16 14:29:35
owenqi 发表于 2021-5-16 11:57
你可以贴出部分数据,这样方便查看为什么报错。
兄弟你看一下,这个是两种不同生成方法报的错误提示,底下是数据描述。 str(RawData).png 微信截图_20210516142719.png 微信截图_20210516142732.png
附件列表
微信截图_20210516142732.png

原图尺寸 11.77 KB

微信截图_20210516142732.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群