要查找R数据帧列中每n个值的总和(如果存在缺失值),我们可以将rowsum函数与rep函数一起使用,该函数将重复行的总和,并且na.rm = TRUE排除具有缺失值的行。例如,如果我们有一个名为df的数据框,其中包含4列,每列包含20个值,但缺少一些值,则可以使用命令rowum(df,rep(1:5,each = 4),na.rm = TRUE)。
x1<-sample(c(NA,rpois(2,5)),20,replace=TRUE) x2<-sample(c(NA,rpois(2,10)),20,replace=TRUE) df1<-data.frame(x1,x2) df1输出结果
x1 x2 1 4 10 2 5 10 3 NA 7 4 4 7 5 4 NA 6 5 7 7 4 NA 8 NA NA 9 5 10 10 4 NA 11 NA NA 12 5 NA 13 4 NA 14 4 NA 15 5 NA 16 NA 10 17 NA NA 18 4 7 19 5 7 20 NA NA
如果数据帧中存在缺失值,则查找df1中每5行的列总和-
rowsum(df1,rep(1:5,each=4),na.rm=TRUE)输出结果
x1 x2 1 13 34 2 13 7 3 14 10 4 13 10 5 9 14
y1<-sample(c(NA,rnorm(2)),20,replace=TRUE) y2<-sample(c(NA,rnorm(2)),20,replace=TRUE) y3<-sample(c(NA,rnorm(2)),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2输出结果
y1 y2 y3 1 0.9563337 -1.1412663 0.1873961 2 2.4693175 0.5661012 0.1873961 3 NA 0.5661012 NA 4 2.4693175 NA 0.4860115 5 NA NA NA 6 0.9563337 NA NA 7 0.9563337 -1.1412663 0.1873961 8 2.4693175 -1.1412663 NA 9 0.9563337 NA 0.1873961 10 2.4693175 0.5661012 0.4860115 11 NA NA 0.4860115 12 NA -1.1412663 0.1873961 13 NA -1.1412663 NA 14 NA NA 0.1873961 15 0.9563337 -1.1412663 0.4860115 16 0.9563337 -1.1412663 0.1873961 17 NA NA 0.4860115 18 0.9563337 -1.1412663 NA 19 0.9563337 -1.1412663 NA 20 2.4693175 0.5661012 0.4860115
如果数据帧中存在缺失值,则查找df2中每5行的列总和-
rowsum(df2,rep(1:5,each=4),na.rm=TRUE)输出结果
y1 y2 y3 1 5.894969 -0.009063996 0.8608037 2 4.381985 -2.282532593 0.1873961 3 3.425651 -0.575165146 1.3468152 4 1.912667 -3.423798889 0.8608037 5 4.381985 -1.716431443 0.9720230