【发布时间】:2018-11-30 08:18:40
【问题描述】:
我有一个 data.frame 对象,其中包含年、月和日的单独列。我想将其转换为一列 POSIXlt 类型的对象。所以我的 data.frame 看起来像
test_df <- data.frame(matrix(data = as.integer(c(1900,1900,1900,1,1,1,1,2,3)),
nrow = 3, ncol = 3))
colnames(test_df) <- c("Year","Month","Day")
如果我尝试按以下方式转换单个行
paste(test_df$Year[1], test_df$Month[1], test_df$Day[1], sep = "/") %>%
as.factor() %>%
strptime(format = "%Y/%m/%d")
我最终得到一个 POSIXlt 类对象。但是,如果我尝试使用这样的应用功能
test_df$date <- apply(test_df, 1,
function(x)
strptime(as.factor(paste(x[1], x[2], x[3],
sep = "/")),
format = "%Y/%m/%d"))
我最终会在该新列中获得列表对象。在使用 apply 时我可以做些什么来维护 POSIXlt 类?
【问题讨论】:
-
strptime(paste(test_df$Year, test_df$Month, test_df$Day, sep = "/"), format = "%Y/%m/%d") -
或类似 Ronak 的,
strptime(do.call(paste, test_df), format = '%Y %m %d')