我有一个数据框名称列表
我用objects()来获取它们。
my_list <- objects()
my_list
[1]"df1"
[2]"df2"
[3]"df3"
[4]"df4"
...
每个数据框有7列
我有3个不同的字符向量v1,v2,v3
(长度4),我想用它来命名数据帧的前4列。我基本上希望按顺序重用这些向量,直到我的data.frame列表中的所有列都被命名。
重要提示:我想使用3个向量来命名所有数据帧。 v1
命名df1
,v2
命名df2
,v3
命名df3
,v1
再命名{{1}等等...
df4
答案 0 :(得分:1)
data.table包中的Setnames可以正常工作。
setnames(df,old = c(1:4), new = v1[1:4])
编辑:如果您想为整个列表执行此操作,可以使用lapply。
lapply(l, function(x) setnames(x,old = c(1:4), new = v1[1:4]))
edit2:回收3个载体,并使其易于阅读 -
for (i in 1:length(l))
{
if (i%%3 == 1) {
setnames(l[[i]],old = c(1:4), new = v1[1:4])
}
else if (i%%3 == 2) {
setnames(l[[i]],old = c(1:4), new = v2[1:4])
}
if (i%%3 == 0) {
setnames(l[[i]],old = c(1:4), new = v3[1:4])
}
}