簡単な例を次に示します。3 つの日付を含むデータ フレームがあります。
Data <- as.data.frame(as.Date(c('1970/01/01', '1970/01/02', '1970/01/03')))
names(Data) <- "date"
次に、同じエントリで構成される列を追加します。
for(i in 1:3){
Data[i, "date2"] <- Data[i, "date"]
}
出力は次のようになります。
date date2
1 1970-01-01 0
2 1970-01-02 1
3 1970-01-03 2
不明な理由により、列 date2 のクラスは、date のクラスであった date ではなく数値です。不思議なことに、R に明示的に Date 形式を使用するように指示すると、次のようになります。
for(i in 1:3){
Data[i, "date3"] <- as.Date(Data[i, "date"])
}
違いはありません。
date date2 date3
1 1970-01-01 0 0
2 1970-01-02 1 1
3 1970-01-03 2 2
問題は、[] のサブセット化の使用にあるようです。日付の 2 つの列があり、いくつかの要因に応じて他の 2 つの列の 1 つから日付を選択する 3 つ目の列を作成する興味深い例では、同じことが起こります。
もちろん、次のようなことを行うことで、振り返ってすべてを修正できます。
Data$date4 <- as.Date(Data$date2, origin = "1970-01-01")
しかし、私はまだ疑問に思っています:なぜですか? なぜこうなった?別の列に転送されたときに、私の日付が日付のままにならないのはなぜですか??