【发布时间】:2013-10-04 07:27:50
【问题描述】:
考虑以下 R 代码,它将数据框的一列中的值替换为一组 POSIXct 值:
foo <- as.data.frame(list(bar=rep(5,5)))
bar <- as.POSIXct(rep(5,5), origin="1970-1-1", tz="c")
foo[,1] <- bar
我的问题:为什么当我尝试使用 POSIXlt 时相同的操作会失败?例如:
foo <- as.data.frame(list(bar=rep(5,5)))
bar <- as.POSIXlt(rep(5,5), origin="1970-1-1", tz="c")
foo[,1] <- bar
Warning message:
In `[<-.data.frame`(`*tmp*`, , 1, value = list(sec = c(5, 5, 5, :
provided 9 variables to replace 1 variables
此外,如果我按名称而不是索引来引用列,那么相同的分配就可以正常工作:
foo$bar <- bar
foo <- as.data.frame(list(bar=rep(5,5)))
bar <- as.POSIXlt(rep(5,5), origin="1970-1-1", tz="c")
foo$bar <- bar
我错过了什么?
【问题讨论】:
-
我收到警告说我的系统上的时区“c”是未知的。
-
Roman:我没有收到警告。 “c”应指当前时区。我想你可以指定UCT吗?还是您当地的时区?
标签: r dataframe assign posixct