我有数据框,并希望将它们作为参数传递给函数进行处理。假设有4个数据帧,并希望将第一列重命名为'ROWNUM'。
df1 = data.frame(c(1:10),sample(1:100,10))
df2 = data.frame(c(1:10),sample(1:100,10))
df3 = data.frame(c(1:10),sample(1:100,10))
df4 = data.frame(c(1:10),sample(1:100,10))
function(df) colnames(df)[1] = 'ROWNUM'
我的目标是我想一次性重命名而不是一个一个地传递
感谢。
答案 0 :(得分:1)
我们可以在将数据集保存在lapply
list
nm1 <- ls(pattern="df\\d+")
lst <- lapply(mget(nm1), function(x) {
colnames(x)[1] <- 'ROWNUM'
x})
最好将数据集保存在list
中,但是如果我们需要更新原始数据集
list2env(lst, envir=.GlobalEnv)
或者我们使用assign
for(j in seq_along(nm1)){
assign(nm1[j], `names<-`(get(nm1[j]),
c("ROWNUM", names(get(nm1[j]))[-1])))
}