更改 data.frames 列表的第 n 个元素的 colnames
Changing colnames of the nth element of a list of data.frames
我有一个数据框名称列表
我使用 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
再次命名为 df4
, 等等...
df1
X1 X2 X3 X4 X5 X6 X7
1 NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA
v1 <- c(a,b,c,d)
magic(my_list)
df1
a b c d X5 X6 X7
1 NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA
...
data.table 包中的设置名称将起作用。
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])
}
}
我有一个数据框名称列表
我使用 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
再次命名为 df4
, 等等...
df1
X1 X2 X3 X4 X5 X6 X7
1 NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA
v1 <- c(a,b,c,d)
magic(my_list)
df1
a b c d X5 X6 X7
1 NA NA NA NA NA NA NA
2 NA NA NA NA NA NA NA
3 NA NA NA NA NA NA NA
...
data.table 包中的设置名称将起作用。
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])
}
}