r - 重命名列表中每个数据框中的 1 列
问题描述
我正在尝试重命名数据框列表中的一列。
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
但是,我的 lapply 似乎不起作用。错误代码如下:
my_list[[x]] 中的错误:无效的下标类型“列表”
解决方案
我们正在循环遍历它list
本身而不是它的索引。因此,在匿名调用中,'x' 是值,即list
.
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
})
推荐阅读
- image - 您如何将大型 sdf 化合物文件转换为包含分子图像的单个文件?
- go - 如何使用 Google 的公钥手动验证 JWT 的签名?
- symfony - 在flush()时没有将Doctrine ORM实体数据持久化到数据库中
- python - 在python中用csv中的列表转换json
- php - 两个日期之间的差异(字符串)
- java - ByteBuddy - 重新定义给定包中的所有类
- python - 有没有办法为 python IDLE 导入 compare_ssim?
- angularjs - 嵌入 ngx-monaco-editor 中没有 InjectionToken 提供程序
- python - Python 3 Selenium 从具有相同 ID 但不同值的下拉菜单中选择
- azure-application-insights - Display Kusto query results as chart