我正在尝试定义一个函数,该函数使用dplyr::select
选择在多个数据框中具有相同名称的列,因此该列的名称不应作为对用户的相关输入。例如,我希望这样的事情适用于其中包含“ Sepal.Length”列的任何数据框:
sel_Sepal.Length <- function(df) {
# The code we are looking for...
}
以便我可以应用
sel_Sepal.Length(iris)
要获得这样的结果:
Sepal.Length
1 5.1
2 4.9
3 4.7
4 4.6
5 5.5
... ...
我知道这个answer存在类似问题。但不同之处在于,我希望该函数在不输入列名的情况下运行,该列名应在函数代码中固定。
这可能被认为是一个琐碎的问题,因为可以使用户输入列名并使之起作用:
selectvar <- function(df, var) {
var <- enquo(var)
df %>%
select(!!var)
}
selectvar(iris, Sepal.Length)
Sepal.Length
1 5.1
2 4.9
3 4.7
4 4.6
5 5.5
... ...
但是我认为我缺少一个概念,因此我无法使其按我要求的方式工作(无需输入要选择的列)。提出这个问题只是为了找到缺失的概念。希望它可以帮助别人。预先谢谢你!
答案 0 :(得分:0)
我可能误解了你的问题;因为您明确希望将列名硬编码在函数内部(至少这是我从推论得出的,“我希望函数在不输入列名的情况下工作,该名称应固定在函数代码内” ),您可以
sel_Sepal.Length <- function(df) {
df %>% select(Sepal.Length)
}
但这意味着实际上整个功能没有太多意义。
也许您可以阐明整个练习的重点?