每年(闰年)从 1 - 365 (366) 依次增加数字计数

Soi*_*Guy 4 r

我有每日天气数据,其中包含月份、月份、年份和数据的列。但我需要为一年中的某一天添加​​另一列。例如 1 - 365(闰年为 366)。

我根本不是一个程序员,我熟悉 seq() 例如,seq(1, 365) 但是上面的代码将在 365 处终止。我需要在考虑年份的同时按顺序增加数字,以便序列每年都开始(并且考虑闰年)。在此示例中,所有天气数据均从 1 月 1 日开始。非常感谢任何想法/建议/指示。

编辑:示例数据

example.data <- structure(list(V1 = 1:6, V2 = c(1L, 1L, 1L, 1L, 1L, 1L), 
    V3 = c(1950L, 1950L, 1950L, 1950L, 1950L, 1950L), 
    V4 = c(NA, NA, NA, NA, NA, NA), 
    V5 = c(0, 0, 0, 0, 0, 0)),
    .Names = c("V1", "V2", "V3", "V4", "V5"), row.names = c(NA, 6L), class =                "data.frame")`
Run Code Online (Sandbox Code Playgroud)

小智 5

假设您的数据集名为df,您可以构造一个日期字段:

df$date <- as.Date(paste(df$Y, df$m, df$d, sep="-"), "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)

然后使用%j从该日期对象获取属性:

df$day_of_year <- as.numeric(strftime(df$date, "%j"))
Run Code Online (Sandbox Code Playgroud)