找出每个 R 数据帧组中非缺失值的数量。
为了找到 R 数据帧的每组中非缺失值的数量,我们可以将数据帧转换为data.table对象,然后使用 sum 函数对 is.na 取反。
例如,如果我们有一个名为 df 的数据框,其中包含一个分组列(例如 Group)和一个数值列(NA 很少,例如 Num),那么我们可以使用以下给定的命令找到每个 Group 中非缺失值的数量 -
setDT(df)[,sum(!is.na(df)),by=.(Group)]
示例 1
以下代码段创建了一个示例数据框 -
Grp<-sample(LETTERS[1:3],20,replace=TRUE)Dep_Var<-sample(c(NA,round(rnorm(2),2),20,replace=TRUE))
df1<-data.frame(Grp,Dep_Var)
df1
创建了以下数据框
Grp Dep_Var1 B NA
2 A 1.00
3 A 20.00
4 B -0.63
5 B -1.48
6 B NA
7 A 1.00
8 C 20.00
9 A -0.63
10 A -1.48
11 C NA
12 C 1.00
13 B 20.00
14 C -0.63
15 B -1.48
16 A NA
17 C 1.00
18 B 20.00
19 A -0.63
20 B -1.48
要加载data.table对象并在上面创建的数据框中的每个 Grp 中找到非缺失值的数量,请将以下代码添加到上面的代码段中 -
Grp<-sample(LETTERS[1:3],20,replace=TRUE)输出结果Dep_Var<-sample(c(NA,round(rnorm(2),2),20,replace=TRUE))
df1<-data.frame(Grp,Dep_Var)
library(data.table)
setDT(df1)[,sum(!is.na(Dep_Var)),by=.(Grp)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Grp V11: B 6
2: A 6
3: C 4
示例 2
以下代码段创建了一个示例数据框 -
Category<-sample(c("Low","Medium","High"),20,replace=TRUE)Val<-sample(c(NA,rpois(2,5),20,replace=TRUE))
df2<-data.frame(Category,Val)
df2
创建了以下数据框
Category Val1 Medium 20
2 High 1
3 High 8
4 High 5
5 High NA
6 Medium 20
7 High 1
8 Low 8
9 Low 5
10 Medium NA
11 Medium 20
12 Medium 1
13 Medium 8
14 Medium 5
15 Medium NA
16 High 20
17 Medium 1
18 Medium 8
19 Low 5
20 Low NA
要在上面创建的数据框中找到每个类别中非缺失值的数量,请将以下代码添加到上面的代码段中 -
Category<-sample(c("Low","Medium","High"),20,replace=TRUE)输出结果Val<-sample(c(NA,rpois(2,5),20,replace=TRUE))
df2<-data.frame(Category,Val)
setDT(df2)[,sum(!is.na(Val)),by=.(Category)]
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
Category V11: Medium 8
2: High 5
3: Low 3
以上是 找出每个 R 数据帧组中非缺失值的数量。 的全部内容, 来源链接: utcz.com/z/358510.html