【发布时间】:2021-10-13 20:43:24
【问题描述】:
我有一组使用dput 函数的数据:
df <- structure(list(ID = c(19512957L, 5603090L, 18235508L),
ID.Type = c("A", "B", "B"), Voter.First.Name = c("Joe",
"Heather", "Hannah"), Voter.Last.Name = c("Smith", "Jones",
"James"), Phone = c(1234567890, 2345678901, 3456789012
), Date.Called = c("9/28/21", "9/28/21", "9/28/21")), row.names = c(NA,
3L), class = "data.frame")
我正在尝试将Date.Called 转换为日期格式,但是当我运行时:
df$Date.Called <- as.Date(df$Date.Called)
我收到以下错误:
Error in charToDate(x) :
character string is not in a standard unambiguous format
我在 Stack Overflow 上研究了这个问题,认为我找到了答案,那就是:
df$Date.Called <- as.Date(as.character(df$Date.Called),"%Y%m%d")
但这只是将Date.Called 下的所有结果返回为 NA。
我错过了什么?
编辑我还有另一个数据框
df2 <- structure(list(ID = c(19512957L, 5603090L, 18235508L),
ID.Type = c("A", "B", "B"), Voter.First.Name = c("Joe",
"Heather", "Hannah"), Voter.Last.Name = c("Smith", "Jones",
"James"), Phone = c(1234567890, 2345678901, 3456789012
), Date.Called = c("09-28-21", "09-28-21", "09-28-21")), row.names = c(NA,
3L), class = "data.frame")
我正在尝试将Date.Called 列转换为与@maarvd 答案类似的格式,但是当我运行时:
df2$Date.Called <- as.Date(df2$Date.Called, "%m/%d/%y")
它再次只返回 NAs
【问题讨论】:
-
格式是月/日/年,而不是年/月/日。试试
as.Date(df$Date.Called, "%m/%d/%y") -
@maarvd 谢谢你。还有一个问题。如果我正在尝试做类似的事情(从字符转换为日期格式)但
Date.Called的数据已经看起来像06-20-2021。因为当我运行您为其他数据集编写的代码时,它会将其转换为 NA。 -
"09-28-21" 是 "%m-%d-%y" 格式,因为它在数字段之间有破折号,而不是斜线。
-
@JonSpring 正确,那么根据@maarvd 的回答将其转换为与
df相同的日期格式的正确方法是什么? -
as.Date(df$Date.Called, "%m-%d-%y")