我只是试图将lubridate时间戳存储在一个数据文件中。然而,它们以秒为单位进行转换。
下面是一个可重复的例子:
library(lubridate)
tsta <- ymd_hms('2021-03-16 22:59:59') # tsta for timestamp
df <- as.data.frame(matrix(ncol=1, nrow=2)) # preallocate a small dataframe
colnames(df) <- 'timestamp'
# trying to add lubridate object in it
df[1, 'timestamp'] <- tsta所以tsta看起来像"2021-03-16 22:59:59 UTC",但是一旦我把它放到df中,它看起来就像
timestamp
1 1615935599
2 NA这样做的正确方法是什么?
发布于 2021-10-18 18:53:57
matrix只能存储一个类,POSIXct可以转换为它的数值存储值。一种选择是
df <- tibble(timestamp = c(tsta, ymd_hms(NA)))-output
> df
# A tibble: 2 × 1
timestamp
<dttm>
1 2021-03-16 22:59:59
2 NA 或者另一种方式是
df <- tibble(timestamp = ymd_hms(rep(NA, 2)))
df$timestamp[1] <- tsta
df
# A tibble: 2 × 1
timestamp
<dttm>
1 2021-03-16 22:59:59
2 NA 或者使用OP的代码,首先转换NA值
df$timestamp <- ymd_hms(df$timestamp)
df[1, 'timestamp'] <- tsta
df
timestamp
1 2021-03-16 22:59:59
2 <NA>发布于 2021-10-18 20:03:36
您可以将字符数据保存为字符数据,这些数据可以在以后转换为位置数据。
tsta <- format(ymd_hms('2021-03-16 22:59:59'), "%Y-%m-%d %H:%M:%S")
df[1, 'timestamp'] <- tsta
df
timestamp
1 2021-03-16 22:59:59
2 <NA>https://stackoverflow.com/questions/69621123
复制相似问题