我有一个 list :
l <- list(1:3, 4:6)
names(l[[1]]) <- c("A1","B1","C1")
names(l[[2]]) <- c("A2","B2","C2")
l
[[1]]
A1 B1 C1
1 2 3
[[2]]
A2 B2 C2
4 5 6
我想切换列表元素的值和名称,因此输出如下:
[[1]]
1 2 3
A1 B2 C3
[[2]]
4 5 6
A2 B2 C2
在我的真实列表中,我有 200 多个子列表,每个子列表有 100 多个元素。 R中有什么有效的方法可以实现这一点吗?
提前谢谢您。
最佳答案
使用 lapply()
和 setNames()
的基本
解决方案。
lapply(l, function(x) setNames(names(x), x))
或者您可以将 enframe()
与 tibble
中的 deframe()
一起使用。
library(tibble)
lapply(l, function(x) deframe(enframe(x)[2:1]))
两人都给了
# [[1]]
# 1 2 3
# "A1" "B1" "C1"
#
# [[2]]
# 4 5 6
# "A2" "B2" "C2"
关于r - 如何在 R 中交换列表元素的名称和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63491058/