簡體   English   中英

R-在使用plyr分組的所有功能上應用功能的有效方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM