R将日期转换为一年中的某一天

时间:2017-03-28 08:37:51

标签: r

我有一个数据框如下

S = c("28/05/2016 07:00", "29/05/2016 07:00", "30/05/2016 07:00")
S1 = c("2016-05-28", "2016-05-29", "2016-05-30") 
df = data.frame(S, S1)

我想将日期转换为一年中的某一天。使用

df$Day_S <- yday(df$S)
df$Day_S1 <- yday(df$S1)

给出

    S                  S1            Day_S   Day_S1
1   28/05/2016 07:00   2016-05-28    141     149
2   29/05/2016 07:00   2016-05-29    140     150
3   30/05/2016 07:00   2016-05-30    140     151

仅适用于'S1'日期的格式。

我试过

df$S_1 <- format(as.POSIXct(df$S,format='%d/%m/%Y'),format='%d/%m/%Y')
df$Day_S_1 <- yday(df$S_1)

但这仍然是一年中错误的一天。

如何将“S”列转换为一年中的某一天?

1 个答案:

答案 0 :(得分:2)

这对我有用

S = c("28/05/2016 07:00", "29/05/2016 07:00", "30/05/2016 07:00")
s_1 <- as.Date(S,format='%d/%m/%Y')
Day_S <- lubridate::yday(s_1)