【发布时间】:2014-03-29 19:25:05
【问题描述】:
我在 R 中有一个数据框,其中一列是时间戳,例如 2014-03-08 00:20:34
我想将数据框中的所有这些时间戳转换为一年中的某一天。例如,2014 年 3 月 29 日将是 88。
如果 'df' 是我的数据框并且 'updated' 是我的时间戳列,这将进行转换:
strftime(df$updated, format = "%j")
如何在整个数据框中应用它?
谢谢,
【问题讨论】:
我在 R 中有一个数据框,其中一列是时间戳,例如 2014-03-08 00:20:34
我想将数据框中的所有这些时间戳转换为一年中的某一天。例如,2014 年 3 月 29 日将是 88。
如果 'df' 是我的数据框并且 'updated' 是我的时间戳列,这将进行转换:
strftime(df$updated, format = "%j")
如何在整个数据框中应用它?
谢谢,
【问题讨论】:
as.numeric(as.Date("2014-03-08 00:20:34")-as.Date("2014-01-01"))+1
#[1] 67
因此,只需对您想要的任何名称列进行赋值,并将df$updated 替换为字符值。另一种方法是使用真正多元素命名列表的 POSIXlt 对象:
as.POSIXlt("2014-03-08 00:20:34")$yday
[1] 66
as.POSIXlt("2014-03-08 00:20:34")$yday +1
[1] 67 #b ecause `yday`s` are zero referenced unlike the rest of R
【讨论】: