【发布时间】:2019-03-11 19:52:25
【问题描述】:
我需要能够按名称重命名数据框列表中的列,这些数据框都可以预期具有相同的名称。
例如:
[[1]]
col1 col2
1 1 2
2 2 3
[[2]]
col1 col2
1 1 2
2 2 3
应该变成:
[[1]]
ID col2
1 1 2
2 2 3
[[2]]
ID col2
1 1 2
2 2 3
数据:
col1 <- c(1,2)
col2 <- c(2,3)
myList <- list(data.frame(col1,col2),data.frame(col1,col2))
我的尝试:
lapply(myList, function(x){
names(myList[[x]])[names(myList[[x]]) =="col1"] <- "ID"
})
我哪里做错了?我需要基础 R。
【问题讨论】:
-
谢谢,但我需要按名称而不是索引来引用 names(x)[1]。
-
抱歉,没有读到:
lapply(myList, function(x) {names(x)[which(names(x) == "col1")] <- "ID"; x})注意; x- 您的函数返回x很重要 -
是的,就是这样。谢谢