迭代dplyr中的列?

时间:2016-10-03 14:15:01

标签: r dplyr

xxdiff --unmerge3 myfile.txt
  

错误:所有select()输入必须解析为整数列位置。   以下不:   * col

如何使用df <- data.frame(col1 = rep(1, 15), col2 = rep(2, 15), col3 = rep(3, 15), group = c(rep("A", 5), rep("B", 5), rep("C", 5))) for(col in c("col1", "col2", "col3")){ filt.df <- df %>% filter(group == "A") %>% select(group, col) # do other things, like ggplotting } 迭代特定的列向量?我知道我会在dplyr R中使用类似df[[col]]的内容,但我不熟悉如何在base中执行此操作。

2 个答案:

答案 0 :(得分:4)

这应该有效。我使用select_()函数

library(dplyr)

df <- data.frame(col1 = rep(1, 15),
                 col2 = rep(2, 15),
                 col3 = rep(3, 15),
                 group = c(rep("A", 5), rep("B", 5), rep("C", 5)))

for(col in c("col1", "col2", "col3")){
  filt.df <- df %>%
    filter(group == "A") %>%
    select_(.dots = c('group', col))
  # do other things, like ggplotting
  print(filt.df)
}

答案 1 :(得分:1)

morseCode和其他下划线替代选项现在在dplyr中已贬值。现在应该使用select_。有关更多信息,请参见dplyr帮助中的select(group, .data[[col]])小插图。