我正在尝试重命名数据框列表中的一列。
my_list <- list(data.frame(a = 1:5, b = 1:5), data.frame(a = 1:5, b = 1:5))
[[1]]
a b
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
[[2]]
a b
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
lapply(my_list, function(x){
k <- my_list[[ x ]]
# set 2nd column to a new name
names(k)[2] <- "NEW COLUMN"
# return
})
这是我希望实现的输出
[[1]]
a NEW COLUMN
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
[[2]]
a NEW COLUMN
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
但是,我的不适似乎无法正常工作。错误代码如下:
my_list [[x]]中的错误:下标类型'list'无效
答案 0 :(得分:1)
我们正在遍历list
本身而不是其索引。因此,在匿名调用中,“ x”是值,即list
的元素data.frame。
lapply(my_list, function(x) {names(x)[2] <- "NEW COLUMN"; x})
假设,如果我们遍历序列,OP的代码将是正确的
lapply(seq_along(my_list), function(i) {
k <- my_list[[ i ]] # extracted the list element
names(k)[2] <- "NEW COLUMN"
k
})