考虑这个简单的例子:
library(dplyr)
library(broom)
dataframe <- data_frame(id = c(1,2,3,4,5,6),
group = c(1,1,1,2,2,2),
value = c(200,400,120,300,100,100))
# A tibble: 6 x 3
id group value
<dbl> <dbl> <dbl>
1 1 1 200
2 2 1 400
3 3 1 120
4 4 2 300
5 5 2 100
6 6 2 100
在这里,我想分组group
并创建两列。
一个是value
(我可以使用dplyr::n_distinct
)中不同值的数量,另一个是来自向量 1 的回归的常数项value
。也就是说,
tidy(lm(data = dataframe, value ~ 1)) %>% select(estimate)
estimate
1 203.3333
这里的困难是将这两个简单的输出组合成一个mutate
保留分组的语句。
我试过类似的东西:
formula1 <- function(data, myvar){
tidy(lm(data = data, myvar ~ 1)) %>% select(estimate)
}
dataframe %>% group_by(group) %>%
mutate(distinct = n_distinct(value),
mean = formula1(., value))
但这不起作用。我在这里缺少什么?谢谢!