【发布时间】:2021-04-16 02:12:29
【问题描述】:
我在 R 中有一个数据框,包含 3000 行和 2 列(temp、flag),如果 flag 列中的相应值不是 NA,我试图将“meantemp”计算为每 6 行的第三列,所以如果标志值等于 NA 我想在 meantemp 列中显示 NA 值。抱歉这个问题。
【问题讨论】:
-
请提供示例数据以及预期输出。阅读how to give a reproducible example。
我在 R 中有一个数据框,包含 3000 行和 2 列(temp、flag),如果 flag 列中的相应值不是 NA,我试图将“meantemp”计算为每 6 行的第三列,所以如果标志值等于 NA 我想在 meantemp 列中显示 NA 值。抱歉这个问题。
【问题讨论】:
你可以试试:
library(dplyr)
df %>%
group_by(group = ceiling(row_number()/6)) %>%
mutate(meantemp = if(all(is.na(flag))) mean(temp, na.rm = TRUE) else NA) %>%
ungroup() %>%
select(-group) -> df
【讨论】: