在多个向量之间聚合,保留仅具有特定向量的NA的条目

col*_*lin 3 r

生成一些例子 data

site<- c(12,12,12,12,45,45,45,45)
horizon<-c('A','A','B','C','A','A','B','C')
value1<- c(19,14,3,2,18,19,4,5)
value2<- c(NA,NA,3,2,NA,NA,4,5)
data<-data.frame(site,horizon,value1,value2)
Run Code Online (Sandbox Code Playgroud)

假设我使用聚合函数按站点和地平线汇总值1

aggregate(value1~site+horizon,data=data,FUN=mean)
Run Code Online (Sandbox Code Playgroud)

R版画:

  site horizon value
1   12       A  16.5
2   45       A  18.5
3   12       B   3.0
4   45       B   4.0
5   12       C   2.0
6   45       C   5.0
Run Code Online (Sandbox Code Playgroud)

但是,如果我通过两个向量进行聚合,那么它会删除所有A视野,因为它们没有数据 value2

aggregate(.~site + horizon,data=data,FUN=mean)
  site horizon value1 value2
1   12       B      3      3
2   45       B      4      4
3   12       C      2      2
4   45       C      5      5
Run Code Online (Sandbox Code Playgroud)

我希望这会从我的第一次聚合调用生成输出,其中一个附加列value2具有A视野的NA条目.

jog*_*ogo 7

aggregate(.~site + horizon,data=data,FUN=mean, na.action=na.pass)
Run Code Online (Sandbox Code Playgroud)