我试图获取大约800万条记录,通过分位数(在我的实际应用程序中逐渐减少)将它们分成相等的组,然后找到每组的平均值。我希望这是一个可重复的例子:
require(Hmisc) # for weighted functions
year <- c(10,10,20,20,30,30)
hhinc99 <- c(101,102,301,301,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,
weights = wtsupp,
probs=c(0, .5, 0))) %>%
group_by(inc_q_groups) %>%
summarize(inc_q_means <-
wtd.mean(hhinc99, weights = wtsupp, na.rm=TRUE))) ->
inc_dec_means
当我运行此代码时,我收到以下错误。
Error in mutate_impl(.data, dots) :
Evaluation error: object 'inc2' not found.
在根据左边定义的另一个mutate变量定义mutate变量之前,我已经编写了函数。不知道为什么不在这里。
答案 0 :(得分:1)
我认为这与你使用<-
进行mutate内部的赋值而不是=
有关。
library(tidyverse)
require(Hmisc) # for weighted functions
year <- c(10,10,20,20,30,30)
hhinc99 <- c(101,102,301,301,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)
#> # A tibble: 6 x 4
#> # Groups: year [3]
#> year hhinc99 wtsupp `inc2 <- hhinc99`
#> <dbl> <dbl> <dbl> <dbl>
#> 1 10 101 1.10 101
#> 2 10 102 1.20 102
#> 3 20 301 1.30 301
#> 4 20 301 1.50 301
#> 5 30 501 1.70 501
#> 6 30 502 1.11 502