如果R数据帧中存在缺失值,如何找到每n个值的总和?

要查找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