首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >as.Date返回NA

as.Date返回NA
EN

Stack Overflow用户
提问于 2021-09-29 19:24:35
回答 1查看 31关注 0票数 0

我有这个df

代码语言:javascript
复制
Date;count
2014-10-15;1
2014-12-01;1
2015-01-14;1
2015-03-15;1
2015-07-20;1
2015-10-15;1
2016-01-02;1
2016-01-03;1
2016-02-15;1
2016-04-15;1

日期的格式为%Y-%m-%d,我使用dplyr包创建了另一个仅包含月份和年份的列。这个新列包含字符形式的正确数据,因此我添加了一个新命令来转换此列:

代码语言:javascript
复制
df<-df %>%
  mutate(monthyear = format(Date, "%m-%Y")) %>%
  mutate_at(vars(monthyear), as.Date, format = "%m-%Y")

事实证明,monthyear列的输出是NA。我尝试将此列转换为factor,然后再将其转换为date,NA继续。我也试过了

代码语言:javascript
复制
df<-df %>%
  mutate(monthyear = format(Date, "%m-%Y"))

然后运行以下命令

代码语言:javascript
复制
df$monthyear <- as.Date(df$monthyear, format = "%m-%Y")

代码语言:javascript
复制
df$monthyear <- as.Date(paste0("1/", df$monthyear), format = "%d/%m/%Y")

在所有情况下,我的输出在所有行中都是NA。

EN

回答 1

Stack Overflow用户

发布于 2021-09-29 19:28:22

它不会转换为Date类,除非我们拥有所有的三个组件,即日、月和年。当我们执行monthyear时,它失去了“天”部分。如果我们需要重新转换,必须添加一天

代码语言:javascript
复制
df %>%
  mutate(monthyear = format(Date, "%m-%Y")) %>%
  mutate_at(vars(monthyear), ~ as.Date(paste0("1-", .x), format = "%d-%m-%Y")))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69382331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档