1

データ フレームの 1 つの列の値を一連の POSIXct 値に置き換える次の R コードを考えてみます。

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

私は何が欠けていますか?

4

2 に答える 2