R 如何计算非缺失值计数的平均值?

R 如何计算非缺失值计数的平均值?,r,summarize,R,Summarize,我想,首先,计算数据帧中特定列的非缺失值的组数,然后计算其平均值。基本上,我希望了解非缺失值(单个值)的组计数的平均值 我设法计算了非缺失值的组计数,但没有计算其平均值(单个值)。除了最后一行之外,下面的代码还行(我注释掉了它,因为它给了我错误的输出) 数据% 总结(N_iv=总和(!is.na(to_ind)))%>% #总结(平均值(N_iv)) 我想你想做的就是这样。 您必须在总结之前取消分组: ( data %>% group_by(hosp, from, to) %

我想,首先,计算数据帧中特定列的非缺失值的组数,然后计算其平均值。基本上,我希望了解非缺失值(单个值)的组计数的平均值

我设法计算了非缺失值的组计数,但没有计算其平均值(单个值)。除了最后一行之外,下面的代码还行(我注释掉了它,因为它给了我错误的输出)

数据%
总结(N_iv=总和(!is.na(to_ind)))%>%
#总结(平均值(N_iv))

我想你想做的就是这样。 您必须在总结之前取消分组:


(
  data
  %>% group_by(hosp, from, to)
  %>% mutate(
    hosp_ind = na_if(hosp_ind, ""), 
    to_ind = na_if(to_ind, "") )
  %>% summarise(
    N_iv = sum(!is.na(to_ind)))
  %>% ungroup
  %>% summarise(mean(N_iv))
)
输出:

# A tibble: 1 x 1
  `mean(N_iv)`
         <dbl>
1        0.857

另一种方法是
pull
N_iv
计算其平均值:

(
  data
  %>% group_by(hosp, from, to)
  %>% mutate(
    hosp_ind = na_if(hosp_ind, ""), 
    to_ind = na_if(to_ind, "") )
  %>% summarise(
    N_iv = sum(!is.na(to_ind)))
  %>% pull(N_iv)
  %>% mean
)

我想你需要
N_iv=mean(!is.na(to_ind))
我想对你的问题投赞成票,但你需要(1)创建一个不超过12行的更简单的数据帧-使用
tibble::tribble
创建它,以可读表的形式呈现,(2)并添加预期的输出。你的意思是
tibble::tibble
?我可以更改数据以使其更简单,但是输出将与下面答案中显示的不同。谢谢@pietrodito。关于NA转换,你是绝对正确的,很抱歉我没有注意到它!我在这里的问题是,一旦我用summary计算了列
N_iv
的平均值,如何得到它。我希望得到的输出是0.857。我想我现在得到了你想要的是的,你做到了,非常感谢!
%>% mutate(
    hosp_ind = na_if(hosp_ind, ""), 
    to_ind = na_if(to_ind, "") )
(
  data
  %>% group_by(hosp, from, to)
  %>% mutate(
    hosp_ind = na_if(hosp_ind, ""), 
    to_ind = na_if(to_ind, "") )
  %>% summarise(
    N_iv = sum(!is.na(to_ind)))
  %>% pull(N_iv)
  %>% mean
)