【发布时间】:2018-11-18 18:34:41
【问题描述】:
这个问题是Changing Column Names in a List of Data Frames in R的扩展。
该帖子解决了 data.frame 的 所有 列的更改名称。
但是如何只更改选定数量的列的名称?
例子:
我只想更改列表中每个 data.frame 中第一列的名称:
dat <- data.frame(Foo = 1:5,Bar = 1:5)
lst <- list(dat,dat)
print(lst)
[[1]]
Foo Bar
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
[[2]]
Foo Bar
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
(失败)尝试:
lapply(1:2, function(x) names(lst[[x]])[names(lst[[x]]) == 'Foo'] <- 'New')
lapply(1:2, function(x) names(lst[[x]])[names(lst[[x]]) == 'Foo']) <- rep('New',2)
lapply(1:2, function(x) setNames(lst[[x]][names(lst[[x]]) == 'Foo'],'New'))
【问题讨论】:
-
注意:需要更改的列号可能因data.frames而异。在上面的例子中,
Foo可能在一个 data.frame 的第 1 列,但在第二个 data.frame 的第 2 列。等等
标签: r list dataframe rename lapply