下面的代码用于将数据分成分位数(使用来自Frank Harrell的Hmisc的wtd.quantile,使用分位数和数据(+一点抖动)来定义一个因子(带有cut)然后分组找到分位数组之间的因子。然而,我得到了这个“缺少参数”的错误,在下面再现,而不是像我期望的那样来自wtd.quantile,而是来自mutate。这被解析错了吗?还是有些错误?完全不同的问题?
library(Hmisc)
library(dplyr)
year <- c(10,10,20,20,30,30)
hhinc99 <- c(101,102,301,302,501,502)
wtsupp <- c(1.1,1.2,1.3,1.5,1.7,1.11)
midy <- tibble(year, hhinc99, wtsupp)
midy %>%
group_by(year) %>%
mutate(inc2 = hhinc99,
inc_q_groups = cut(inc2,
breaks = wtd.quantile(hhinc99 + .Machine$double.eps * 100 * rnorm(length(hhinc99)),
weights = wtsupp, probs=c(0, 0.5, 1)))) %>%
group_by(inc_q_groups) %>%
summarise(inc_q_means =
wtd.mean(hhinc99, weights = wtsupp, na.rm=TRUE)) -> inc_dec_means
Error in mutate_impl(.data, dots) :
Evaluation error: unused arguments (weights = wtsupp, probs = c(0, .5. 1)).
如果我只拿出分位数函数并附加midy,我得到:&gt;
breaks
0% 50% 100%
101 302 502
这个问题一直变得陌生。如果我只是将mutate替换为上面的dplyr :: mutate,并且不做其他更改,我会收到此错误:
Error in mutate_impl(.data, dots) :
Evaluation error: no applicable method for 'group_by_' applied to an object of class "factor".
通常我会将其视为包冲突的标志。但还有谁使用“变异”?我认为这是哈德利特别的。 getAnywhere在plyr命名空间中显示mutate的副本,我想这可能是不同的,但我没有加载plyr。
欢迎所有评论,想法,答案,建议等。