gpt4 book ai didi

r - 如果开始月份不是一月,则分配年份 ID

转载 作者:行者123 更新时间:2023-12-04 11:20:49 26 4
gpt4 key购买 nike

<分区>

我有一个包含 8 年每日值的 df data.frame

date <- rep(as.Date(seq(as.Date("2001-05-01"),
as.Date("2008-04-30"), by= 1), format="%Y-%m-%d"), 3)

site <- c(rep("Site_1", 2557), rep("Site_2", 2557), rep("Site_3", 2557))

value <- c(as.numeric(sample(90:271, 2557, replace=T)),
as.numeric(sample(125:340, 2557, replace=T)),
as.numeric(sample(70:173, 2557, replace=T)))

df <- data.frame(date, site, value)

在这种情况下,每年从五月开始,到四月结束。

我想获取第 3 个 的每个 yearmeansdvalue网站

我做了以下

df1 <- df %>%
dplyr::mutate(year = ifelse(date < "2002-05-01", "2001-2002",
ifelse(date < "2003-05-01", "2002-2003",
ifelse(date < "2004-05-01", "2003-2004",
ifelse(date < "2005-05-01", "2004-2005",
ifelse(date < "2006-05-01", "2005-2006",
ifelse(date < "2007-05-01", "2006-2007",
ifelse(date < "2008-05-01", "2007-2008", NA )))))))) %>%
dplyr::select(site, year, value) %>%
dplyr::group_by(site, year) %>%
dplyr::summarise_each(funs(
mean(.),
sd(.)
))

它给了我想要的东西。但是,如果我有 30-50 年的数据,那就需要时间了。此外,如果每个新的 data.frame 都有不同的开始月份,我需要每次修改 ifelse() 以分配年份 ID 以便能够按 year 并进行不同的计算。

如果开始月份不是一月,是否有直接分配 yearID 的方法?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com