【发布时间】:2023-03-27 18:57:01
【问题描述】:
给定这样的数据框:
A <- c(1,2,3,4,NA,6,7,8,9,10,11,12,13,14,15)
B <- c(NA,NA,NA,20,NA,NA,NA,15,NA,NA,NA,NA,11,NA,9)
DF <- data.frame(A, B)
我想根据 B 列中的值计算 A 列中一系列值的平均值。具体来说,每当 B 列中有一个非 NA 值时,我想计算A 列中第 2 行和第 2 行的范围。
比如B列第一个非NA值是20,所以我想计算上面两行(2, 3)、下面两行(NA, 6)和相邻行的均值(4)。所以:
mean(2,3,4,NA,6)
同样,B 行中的下一个非 NA 值是 15。这将是
mean(6,7,8,9,10)
因此,整个数据框的最终结果将是一个新列 C
DF$C <- c(NA,NA,NA,3.75,NA,NA,NA,8,NA,NA,NA,NA,13,NA,14)
【问题讨论】: