R. 将 TimeStamp 列从 DataFrame 转换为 Date Format 列

R. Convert TimeStamp column from DataFrame to Date Format column

我有一个问题。

有一列带有时间戳记录,如'1643410273'(汇总超过120万条记录)。如何将其转换为日期格式?

我创建了这段代码(R 语言):

mydata <- read.csv("summary_dataset.csv")
unique(mydata$Callsign)
flight <- mydata[mydata$Callsign == "AFR228",]
AltitudeValue <- flight$Altitude
UTC_Timestamp <- flight$Timestamp
Flight_Date <- vector()

for (i in 1:length(UTC_Timestamp)){
  Flight_Date[i]=as.POSIXct(UTC_Timestamp[i], origin='1970-01-01', tz="UTC")
}

Flight_Date

但是,结果向量 Flight_Date 填充了时间戳记录。怎么了?

首先将 Timestamp 列转换为数字,通过传递 origin 将其更改为 POSIXct 格式并仅从中提取日期。

flight$Flight_Date <- as.Date(as.POSIXct(as.numeric(flight$Timestamp), 
                              origin='1970-01-01', tz="UTC"))

例子-

as.POSIXct(1643410273, origin='1970-01-01', tz="UTC")
#[1] "2022-01-28 22:51:13 UTC"

as.Date(as.POSIXct(1643410273, origin='1970-01-01', tz="UTC"))
#[1] "2022-01-28"