【发布时间】:2019-11-16 15:52:33
【问题描述】:
我在将数据框中的一列导入日期(表示为不同日期格式的字符)转换为同一数据框中的日期对象时遇到问题。这是一个玩具示例:
xx <- data.frame(A = c(10, 15, 20), B = c("10/15/2010", "9/8/2015", "8/5/2013"))
如果我打印 xx,
A B
1 10 10/15/2010
2 15 9/8/2015
3 20 8/5/2013
我申请:
xx[, "B"] <- sapply(xx[, "B"], function(x) {as.Date(x,
format = "%m/%d/%Y", origin = "1970-01-01")})
我得到:
A B
1 10 14897
2 15 16686
3 20 15922
如果我查看 B 列的模式,它是数字,而不是日期。无论我尝试什么,我似乎都无法获得将 B 列转换为日期类型的结果。我可以随时补充:
xx[, "B"] <- as.Date(xx[, "B"])
但必须有一种方法可以在一个语句中做到这一点。
【问题讨论】:
-
这将创建一个动物园系列:
library(zoo); B <- read.zoo(xx, index = "B", format = "%m/%d/%Y")这会将其转换为数据框fortify.zoo(B)
标签: r dataframe type-conversion