R 有没有办法计算NA';数据帧的每列中都有,但df被分成了不同的组?
我希望确定数据帧中每列中缺失值的比率,由该数据帧中的单独组分割 我对R很陌生,所以到目前为止我还没有取得多少成功。 下面是一个示例数据集来测试它:R 有没有办法计算NA';数据帧的每列中都有,但df被分成了不同的组?,r,statistics,R,Statistics,我希望确定数据帧中每列中缺失值的比率,由该数据帧中的单独组分割 我对R很陌生,所以到目前为止我还没有取得多少成功。 下面是一个示例数据集来测试它: df <- data.frame( programme = c('A','B','B','A','B','C','C','C','C','A'), v1 = c(24,NA,NA,45,NA,23,22,23,45,23), v2 = c(NA,1,1,NA,0,1,1,1,1,NA), v3 = c(2,3,2,3,2,NA,
df <- data.frame(
programme = c('A','B','B','A','B','C','C','C','C','A'),
v1 = c(24,NA,NA,45,NA,23,22,23,45,23),
v2 = c(NA,1,1,NA,0,1,1,1,1,NA),
v3 = c(2,3,2,3,2,NA,NA,NA,NA,2))
df按“程序”分组,获得其他列中NA元素的平均值,聚集到“长”格式,并分散到“宽”格式
library(tidyverse)
df %>%
group_by(programme) %>%
summarise_all(funs(mean(is.na(.)))) %>%
gather(variables, val, -programme) %>%
spread(programme, val)
# A tibble: 3 x 4
# variables A B C
# <chr> <int> <int> <int>
#1 v1 0 1 0
#2 v2 1 0 0
#3 v3 0 0 1
库(tidyverse)
df%>%
组别(课程)%>%
总结所有(funs(平均值为na(%))>%
聚集(变量,val,-程序)%>%
价差(方案,val)
#一个tibble:3x4
#变量A B C
#
#1v1010
#2v21000
#3 v3 0 1
我不明白您的输出如何是每列NA
值的平均值。例如,在列v1
中,它不应该是0.3
?
res <- data.frame(
variables = c('v1','v2','v3'),
A = c(0.0, 1, 0.0),
B = c(1, 0.0, 0.0),
C = c(0.0, 0.0, 1)
)
variables A B C
1 v1 0 1 0
2 v2 1 0 0
3 v3 0 0 1
library(tidyverse)
df %>%
group_by(programme) %>%
summarise_all(funs(mean(is.na(.)))) %>%
gather(variables, val, -programme) %>%
spread(programme, val)
# A tibble: 3 x 4
# variables A B C
# <chr> <int> <int> <int>
#1 v1 0 1 0
#2 v2 1 0 0
#3 v3 0 0 1