1
我有一個數據幀df
與包含時間戳列time
和功能from.timestamp
試圖映射時間戳的日期中的R數據幀
from.timestamp = function(timestamp) {
return(as.POSIXlt(timestamp/1e3, origin="1970-01-01 00:00:00 GMT"))
}
該時間戳轉換爲日期類型。如何修改數據框以便將所有時間戳轉換爲日期?
我的做法
我想以下幾點:
df$time <- apply(as.array(df$time), MARGIN=1, FUN=from.timestamp)
的爲time
結果列條目看上去並不像一個日期,但相當數量的序列,例如,1.034, 59.000, 23.000, 7.000, 5.000, 113.000, 5.000, 157.000, 1.000
。
dput(df)
給出:
structure(list(time = c(1370674741034, 1372671995085, 1370847555008, 1371456058556, 1372570911379, 1371937835807)), .Names = "time", row.names = 8831395:8831400, class = "data.frame")
'as.POSIXlt'是矢量化的,所以'df $ time < - from.timestamp(df $ time)'應該可以工作。 – Roland
如果你想要日期,使用'as.Date'。如果你想要時間,可以使用'as.POSIXct'。除非需要提取組件(小時,分鐘等),否則不要轉換爲'POSIXlt'。不要將'POSIXlt'與'data.frame'一起使用,因爲它是一個比較慢的列表,它使用的內存比POSIXct。 – GSee
如果有人能寫出一個提到矢量化或「轉換」的答案,並解釋我用'apply'觀察到的行爲,那將是非常好的。 – Peteris