R函数用于比较列

3

我想在R语言中创建一个函数,在查看器中查看选择的列进行比较。假设我的数据框是df1:

compare_col <- function(x){
  select(df1, x) %>%
    View()
}

如果我使用x定义函数,那么我只能输入一个列作为输入。
compare_col <- function(x)

compare_col("col_1")

只有当我定义函数为x,y时,才能输入两列。

compare_col <- function(x, y)

compare_col("col_1", "col_2")

我该如何创建一个动态的函数,以便输入 任意数量的列?

5
您可以使用 function(...) { select(df1, ...)},它可以接受引用和非引用参数。 - akrun
2个回答

3
你可以使用 rlang 包来实现这一点, 这将允许你使用 syms!!! 运算符来输入一系列列名,在给定的环境动态地拼接和计算。
library(dplyr)
#library(rlang)
compare_col <- function(x){
  df1 %>% select(!!! syms(x)) %>%
    View()
}
compare_col(c("col1", "col2"))

0
刚刚意识到,我在调用函数时实际上只需要将输入向量化即可。
compare_col(c("col1", "col2"))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接