我在变量“dfs”中给出了一组数据帧的名称,作为字符串数组。即。
> dfs
"dfs1" "dfs2" ... "dfsk"
我想重命名dfs中每个数据框的列。这意味着我想将函数'func'应用于dfs中的每个条目并将结果写回。即结果应该等于评估
dfs1 <- func(dfs1)
dfs2 <- func(dfs2)
...
dfsk <- func(dfsk)
困难在于,dfs可能是任意长的,dfs的内容只在运行时才知道。
我尝试编写函数func并使用:
将其应用于dfslapply( mget(dfs), func)
但是这会使实际的data.frames保持不变。
我的问题与以下未答复的问题有相似之处:
答案 0 :(得分:0)
找到解决方案:关键是使用eval而不是apply。可以使用以下方法获得所需的行为:
cCmd <- paste(dfs, "<- func(" ,dfs,")", sep="")
eCmd <- parse(text=cCmd)
eval(eCmd)
这可能不是最优雅的方式,但它有效。