如果数据框中存在缺失值,则汇总 R 数据框列以按组求和。
如果 R 数据框中存在缺失值,可以在 dplyr 包的 summarise_each 函数的帮助下找到列值的总和,我们可以通过将na.rm参数设置为 TRUE来删除缺失值。
因为,我们将在数据框中有组,因此同一包的 group_by 函数将帮助 summarise_each 函数按组执行求和。查看以下示例以了解其工作原理。
示例 1
以下代码段创建了一个示例数据框 -
Grp<-sample(c("I","II","III"),20,replace=TRUE)Rate<-sample(c(NA,2,4),20,replace=TRUE)
df1<-data.frame(Grp,Rate)
df1
创建了以下数据框
Grp Rate1 II 2
2 I 4
3 II NA
4 II 4
5 II 2
6 I NA
7 III 2
8 III 4
9 I NA
10 I 4
11 III 4
12 II 4
13 II NA
14 I 4
15 III 4
16 III 4
17 III 2
18 II NA
19 III 2
20 III 2
要加载 dplyr 包并汇总 df1 中的列以通过忽略上面创建的数据框中的缺失值来查找总和,请将以下代码添加到上面的代码段中 -
Grp<-sample(c("I","II","III"),20,replace=TRUE)输出结果Rate<-sample(c(NA,2,4),20,replace=TRUE)
df1<-data.frame(Grp,Rate)
library(dplyr)
df1%%group_by(Grp)%%summarise_each(funs(sum(.,na.rm=TRUE)))
# A tibble: 3 x 2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Grp Rate<chr <dbl
1 I 12
2 II 12
3 III 24
示例 2
以下代码段创建了一个示例数据框 -
Class<-sample(c("First","Second","Third"),20,replace=TRUE)Price<-sample(c(NA,1.25,2.75),20,replace=TRUE)
df2<-data.frame(Class,Price)
df2
创建了以下数据框
Class Price1 Third 1.25
2 First NA
3 Third 1.25
4 Third 2.75
5 Second NA
6 Second 1.25
7 Second 1.25
8 Third NA
9 First 2.75
10 Second NA
11 Second NA
12 Second NA
13 Third NA
14 Third NA
15 Third NA
16 Third 2.75
17 First 2.75
18 Third NA
19 Third 1.25
20 Third NA
要通过忽略上面创建的数据框中的缺失值来汇总 df2 中的列以找到总和,请将以下代码添加到上面的代码段中 -
Class<-sample(c("First","Second","Third"),20,replace=TRUE)输出结果Price<-sample(c(NA,1.25,2.75),20,replace=TRUE)
df2<-data.frame(Class,Price)
df2%%group_by(Class)%%summarise_each(funs(sum(.,na.rm=TRUE)))
# A tibble: 3 x 2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Class Price<chr <dbl
1 First 5.5
2 Second 2.5
3 Third 9.25
示例 3
以下代码段创建了一个示例数据框 -
Category<-sample(c("Small","Medium","Large"),20,replace=TRUE)Quantity<-sample(c(NA,500,1000),20,replace=TRUE)
df3<-data.frame(Category,Quantity)
df3
创建了以下数据框
Category Quantity1 Large 1000
2 Small 1000
3 Small 500
4 Large 500
5 Small 1000
6 Medium NA
7 Small 500
8 Medium 500
9 Large NA
10 Medium 500
11 Medium NA
12 Large NA
13 Small 500
14 Medium 1000
15 Large NA
16 Medium 500
17 Small 500
18 Medium NA
19 Small NA
20 Medium 1000
要通过忽略上面创建的数据框中的缺失值来汇总 df3 中的列以找到总和,请将以下代码添加到上面的代码段中 -
Category<-sample(c("Small","Medium","Large"),20,replace=TRUE)输出结果Quantity<-sample(c(NA,500,1000),20,replace=TRUE)
df3<-data.frame(Category,Quantity)
df3%%group_by(Category)%%summarise_each(funs(sum(.,na.rm=TRUE)))
# A tibble: 3 x 2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Category Quantity<chr <dbl
1 Large 1500
2 Medium 3500
3 Small 4000
以上是 如果数据框中存在缺失值,则汇总 R 数据框列以按组求和。 的全部内容, 来源链接: utcz.com/z/355711.html