使用dplyr函数迭代字符向量中的值

时间:2018-08-10 19:05:23

标签: r for-loop dplyr tibble

我有几个变量(在此示例中为id.typeid.subtype),我想使用all.snags包检查小标题dplyr中的不同值。我希望对它们进行排序,并在控制台中打印出所有值(小标题通常仅打印前10个)。输出将等效于以下代码:

distinct(all.snags,id.type)  %>% arrange(id.type) %>% print(n = Inf)
distinct(all.snags,id.subtype) %>% arrange(id.subtype) %>% print(n = Inf)

我认为最好通过遍历向量中的值来完成此操作,但是我无法使其正常工作。

distinct.vars  <- c("id.type","id.subtype")
for (i in distinct.vars) {
    distinct(all.snags,distinct.vars[i]) %>% 
    arrange(distinct.vars[i]) %>% 
    print(n = Inf)
}

1 个答案:

答案 0 :(得分:1)

我认为您想要的功能是

library(dplyr)

df = iris

print_distinct = function(df, columns) {
  for (c in columns) {
    print(df %>% distinct_(c) %>% arrange_(c))
  }
}

print_distinct(df, c("Sepal.Length", "Sepal.Width"))