我试图包装一些函数内的dplyr魔术产生data.frame,然后我用xtable打印。使用dplyr summarise_each()与is.na()
的最终目的是有this一个dplyr版本的工作,阅读各地我遇到了非常有用的summarise_each()
功能与regroup()
子集化后(因为这是一个函数内),然后我就可以用它来得到解析的列来。
我遇到的问题(迄今为止)是从内呼叫is.na()
,因为我被告知Error: expecting a single value
。
我故意不张贴我的功能,只是还没有,但一个小例子如下(注: - 这使用group_by()
而在我的功能我regroup()
替换此)...
library(dplyr)
library(magrittr)
> t <- data.frame(grp = rbinom(10, 1, 0.5),
a = as.factor(round(rnorm(10))),
b = rnorm(10),
c = rnorm(10))
t %>%
group_by(grp) %>% ## This is replaced with regroup() in my function
summarise_each(funs(is.na))
Error: expecting a single value
运行失败,其调用is.na()
这是问题,因为如果我工作,而不是从观测的数量在每它的工作原理(推导缺失的比例要求)...
> t %>%
group_by(grp) %>% ## This is replaced with regroup() in my function
summarise_each(funs(length))
Source: local data frame [2 x 4]
grp a b c
1 0 8 8 8
2 1 2 2 2
真正的问题是,虽然我并不需要每一列中只是is.na()
,但sum(is.na())
按照链接的例子所以我真的希望是......
> t %>%
group_by(grp) %>% ## This is replaced with regroup() in my function
summarise_each(funs(propmiss = sum(is.na)/length))
但问题是,没有按sum(is.na)
“T工作,我期待它(可能是因为我的期望是错误的!)......
> t %>%
group_by(grp) %>% ## This is replaced with regroup() in my function
summarise_each(funs(nmiss = sum(is.na)))
Error in sum(.Primitive("is.na")) : invalid 'type' (builtin) of argument
我打过电话明确用括号is.na()
,但同样会返回一个错误......
> t %>%
+ group_by(grp) %>% ## This is replaced with regroup() in my function
+ summarise_each(funs(nmiss = sum(is.na())))
Error in is.na() : 0 arguments passed to 'is.na' which requires 1
任何建议或文档指针将非常感激地收到。
感谢,
slackline
+1一个真棒图标 – 2014-09-24 13:14:56