【发布时间】:2022-11-19 02:32:50
【问题描述】:
我想用函数更改数据框的列名。
为了用新的列名覆盖我的数据框,我使用了 assign(),它的第一个参数必须是与字符串相同的数据框的名称。为了将名称作为字符串获取,我使用了 deparse(substitute(x)),它在函数外工作。但是在函数内部,它将我的数据框的内容作为字符串而不是名称本身返回...
df <- data.frame(
emp_id = c (1:5),
emp_name = c("Rick","Dan","Michelle","Ryan","Gary"),
stringsAsFactors = FALSE
)
deparse(substitute(df))
rename_fun <- function(x) {
colnames(x)[1] <- "___0"
colnames(x)[2] <- "___1"
y <- deparse(substitute(x))
assign(y, x, envir = .GlobalEnv)
}
rename_fun(df)
我也试过
as.character(substitute(x))
但同样的问题...
谢谢你的帮助!
【问题讨论】: