R - 将数据帧名称列表传递给函数

时间:2016-03-15 09:38:27

标签: r

我有数据框,并希望将它们作为参数传递给函数进行处理。假设有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'

我的目标是我想一次性重命名而不是一个一个地传递

感谢。

1 个答案:

答案 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])))
 }