[英]summarise and then summarise_at in one dplyr chain?
我有一個集群數據的數據框,我按集群聚合它以提供摘要數據。
我想創建一個基於簇數 n() 的新列,然后對 var 列表進行均值和求和:
# works fine
nums <- c("mpg", "disp", "cyl")
mtcars %>% group_by(carb) %>% summarise(cnt = n())
看起來像這樣:
# A tibble: 6 x 2
carb cnt
<dbl> <int>
1 1 7
2 2 10
3 3 3
4 4 10
5 6 1
6 8 1
# does not work, returns error message:
> Error in summarise_impl(.data, dots) : Evaluation error: object
> 'disp' not found. In addition: Warning message: In mean.default(mpg) :
> argument is not numeric or logical: returning NA
nums <- c("mpg", "disp", "cyl")
mtcars %>% group_by(carb) %>% summarise(cnt = n()) %>% summarise_at(.vars = nums,
funs(mean, sum))
目標是獲得上面的 tbl,但新列 cnt 是每個組中的觀察計數。
我們可以mutate
以通過 'carb' 創建 'cn't,然后在執行summarise_at
之前添加 'cnt' 作為分組變量
mtcars %>%
group_by(carb) %>%
mutate(cnt = n()) %>%
group_by(cnt, add = TRUE) %>%
summarise_at(.vars = nums, funs(mean, sum))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.