[英]R - Efficient way to apply function on all features grouped using plyr
令df
為我們的測試數據幀:
set.seed(1)
df <- data.frame(id = c(1,1,2,2,3,3,3),
var1 = round(runif(7)),
var2 = round(runif(7)),
var3 = round(runif(7)))
df
id var1 var2 var3
1 1 0 1 1
2 1 0 1 0
3 2 1 0 1
4 2 1 0 1
5 3 0 0 0
6 3 1 1 1
7 3 1 0 1
我想總結一下id並總結所有像這樣的值:
df %>%
group_by(id) %>%
summarise(sum_var_1 = sum(var1),
sum_var_2 = sum(var2),
sum_var_3 = sum(var3)) %>%
data.frame
id sum_var_1 sum_var_2 sum_var_3
1 1 0 2 1
2 2 2 0 2
3 3 2 1 2
現在的問題是:是否有一種方法可以避免sum_var_2 = sum(var2) [...]
步驟,並在summarise
使用諸如公式之類的功能來實現? 我想總結一下數百個功能!
任何幫助將不勝感激!
由於所有變量都以“ var ”開頭,因此您可以
df %>%
group_by(id) %>%
summarise_at(vars(starts_with("var")), sum)
返回您的示例。
編輯:@傑克- kaupp評論, summarise_all
不工作,甚至更好,也不需要變量名是標准化的:
df %>%
group_by(id) %>%
summarise_all(sum)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.