R 分组列的长度,不包括NAs
如何查找分组列的长度(不包括NAs) 例如,对于以下数据帧R 分组列的长度,不包括NAs,r,R,如何查找分组列的长度(不包括NAs) 例如,对于以下数据帧 Year State var1 var2 TX 2 NA WA 0 3 CA NA 1 CA 2 NA CA 2 3 TX NA 4 WA NA NA WA 3 3 CA NA 0 我要它回来 State var1 var2 TX 1 1 WA 2 2 CA 2 3 有
Year State var1 var2
TX 2 NA
WA 0 3
CA NA 1
CA 2 NA
CA 2 3
TX NA 4
WA NA NA
WA 3 3
CA NA 0
我要它回来
State var1 var2
TX 1 1
WA 2 2
CA 2 3
有人问过一些类似的问题(例如),但我仍在努力获得我想要的输出
我尝试了几种不同的summary\u if
和summary\u all
,但它们要么抛出错误,要么计算错误
counts <- df %>%
group_by(State) %>%
summarise_all(funs(length(!is.na(.))))
计数%
按(州)分组%>%
总结所有(funs(长度(!is.na())
只需创建一个匿名函数,返回由is.na()返回的逻辑向量之和。
:
库(dplyr)
df%>%
按(州)分组%>%
总结所有(.funs=函数(x){sum(!is.na(x))})
#一个tibble:3x3
状态变量1变量2
1 CA 2 3
2 TX 1 1
3 WA 2 2
只需创建一个匿名函数,返回由is.na()返回的逻辑向量之和。
:
库(dplyr)
df%>%
按(州)分组%>%
总结所有(.funs=函数(x){sum(!is.na(x))})
#一个tibble:3x3
状态变量1变量2
1 CA 2 3
2 TX 1 1
3 WA 2 2
带数据。表格:
library(data.table)
setDT(df)
df[,lapply(.SD, function(x) sum(!is.na(x))),State]
State var1 var2
1: TX 1 1
2: WA 2 2
3: CA 2 3
使用data.table:
library(data.table)
setDT(df)
df[,lapply(.SD, function(x) sum(!is.na(x))),State]
State var1 var2
1: TX 1 1
2: WA 2 2
3: CA 2 3
dplyr方法:
df=tibble(State,var1,var2)%>%group_by(State)%>%summarize(var1=sum(!is.na(var1)),var2=sum(!is.na(var2)))
> df
# A tibble: 3 x 3
State var1 var2
<chr> <int> <int>
1 CA 2 3
2 TX 1 1
3 WA 2 2
df=tibble(State,var1,var2)%%>%group_by(State)%%>%summary(var1=sum(!is.na(var1)),var2=sum(!is.na(var2)))
>df
#一个tibble:3x3
状态变量1变量2
1 CA 2 3
2 TX 1 1
3 WA 2 2
dplyr方法:
df=tibble(State,var1,var2)%>%group_by(State)%>%summarize(var1=sum(!is.na(var1)),var2=sum(!is.na(var2)))
> df
# A tibble: 3 x 3
State var1 var2
<chr> <int> <int>
1 CA 2 3
2 TX 1 1
3 WA 2 2
df=tibble(State,var1,var2)%%>%group_by(State)%%>%summary(var1=sum(!is.na(var1)),var2=sum(!is.na(var2)))
>df
#一个tibble:3x3
状态变量1变量2
1 CA 2 3
2 TX 1 1
3 WA 2 2
sum(!is.na(x))
sum(!is.na(x))