R重命名函数中传递的列

标签 r function dplyr

我一直在搜索这个,发现this link有助于从函数重命名传递的列(在我搜索了一段时间后,[,column_name] 代码实际上使 my_function1 工作。有没有办法使用管道运算符重命名函数内数据框中的列?

我的尝试显示在 my_function2但它给了我一个Error: All arguments to rename must be namedError: Unknown variables: col2 .我猜是因为我没有指定 col2属于。

此外,有没有办法将关联的参数传递给函数,例如 col1 和 new_col1 以便您可以关联要替换的列名和替换它的列名。提前致谢!

library(dplyr)

my_df = data.frame(a = c(1,2,3), b = c(4,5,6), c = c(7,8,9))

my_function1 = function(input_df, col1, new_col1) {
  df_new = input_df
  df_new[,new_col1] = df_new[,col1]
  return(df_new)
}
temp1 = my_function1(my_df, "a", "new_a")

my_function2 = function(input_df, col2, new_col2) {
  df_new = input_df %>%
    rename(new_col2 = col2)
  return(df_new)
}

temp2 = my_function2(my_df, "b", "new_b")

最佳答案

rename_(与其他带下划线后缀的 dyplyr 动词一起)已被贬值。
相反,请尝试:

my_function3 = function(input_df, cols, new_cols) { 
  input_df %>%
    rename({{ new_cols }} := {{ cols }}) 
}
this vignette有关使用双大括号包含参数和使用 dplyr 编程的更多信息。

关于R重命名函数中传递的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35023375/

相关文章:

c++ - 如何将函数从 C++ 可执行文件公开给 LuaJIT

r - 根据条件分组对行求和

mysql - dbplyr 字符列作为 TEXT 而不是 VARCHAR 到数据库

r - Fisher.test R 崩溃,并出现 *** 捕获段错误 *** 错误

r - 使用 (d)plyr 创建一系列新列

javascript - Shiny 的数据表回调

javascript - argument.slice() 应该在 ES5 中工作吗?

java - 使用 3 个函数将温度从摄氏度转换为华氏度

r - vector - 字符/整数类(底层)

r - 按连续出现的值分组