我試圖包裝一些函數內的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