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

Iterating over values in character vector with dplyr functions

我有几个变量(在此示例中为 id.typeid.subtype)我想使用 dplyr 包检查 tibble all.snags 中的不同值。我希望对它们进行排序并在控制台中打印出所有值(小标题通常只打印前 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)
}

我觉得这个功能就是你想要的:

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"))