簡體   English   中英

R group_by在循環中使用不同的列名

[英]R group_by different column names in a loop

student <- data.frame(ID = c(11, 12, 13),
                      Name = c("Devin", "Edward", "Wenli"),
                      Gender = c("M", "M", "F"),
                      Birthdate = c("1984-12-29", "1983-5-6", "1986-8-8"))

selection <- c("Name", "Gender", "Birthdate")

現在我想寫一個循環

library(dplyr)
for(choice in selection){
   df = group_by(choice)
   print(df)
}

但這是行不通的。 我該怎么做?

也許,這就是您所追求的?

library(dplyr)
for(choice in selection){
  student %>% group_by(!!choice ) %>% print()
}
 # A tibble: 3 x 5 # Groups: "Name" [1] ID Name Gender Birthdate `"Name"` <dbl> <fct> <fct> <fct> <chr> 1 11.0 Devin M 1984-12-29 Name 2 12.0 Edward M 1983-5-6 Name 3 13.0 Wenli F 1986-8-8 Name # A tibble: 3 x 5 # Groups: "Gender" [1] ID Name Gender Birthdate `"Gender"` <dbl> <fct> <fct> <fct> <chr> 1 11.0 Devin M 1984-12-29 Gender 2 12.0 Edward M 1983-5-6 Gender 3 13.0 Wenli F 1986-8-8 Gender # A tibble: 3 x 5 # Groups: "Birthdate" [1] ID Name Gender Birthdate `"Birthdate"` <dbl> <fct> <fct> <fct> <chr> 1 11.0 Devin M 1984-12-29 Birthdate 2 12.0 Edward M 1983-5-6 Birthdate 3 13.0 Wenli F 1986-8-8 Birthdate 

請注意,OP僅請求了group_by()但未請求group_by() summarize()

的解釋!! 操作者

用dplyr編程的小插圖說:

在dplyr中(通常在tidyeval中)使用!! 表示您希望取消對輸入的引用,以便對其進行評估,而不是對其進行引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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