我正在尝试使用命名索引来替换列表中的某些元素。
我有三个列表:
- super 组
- 子集
- 子集名称
我的目标是将 Superset 中的旧元素替换为 Subset 中的相应元素,其中 Name(Subset) == Name(Superset)。
示例代码(为了正确性而编辑):
# Setting things up
Superset <- list(1, 2, 3, 4)
names(Superset) <- c("a", "b", "c", "d")
Subset <- list(5, 6)
names(Subset) <- c("b", "c") # or any names from Superset
SubsetNames <- as.list(names(Subset))
我尝试过这样的事情:
lapply(SubsetNames, FUN=function(x) Superset[[x]] <- Subset[[x]])
还有:
Superset[SubsetNames] <- Subset
我什至尝试构建一个带有计数器的 for 循环,但这在我的场景中不是一个可行的解决方案。
实际上,Superset 是一个数据帧列表,每个数据帧在 117 列中包含近 90k 个数据点。 其中一些数据框需要进行一些调整。我的代码可以成功提取需要调整的列表并调整它们......现在我只需要把它们放回去。
非常感谢您的帮助!谢谢!
最佳答案
我们可以使用“子集”的名称
来对“超集”进行子集化,并将其分配给“子集”的值
Superset[names(Subset)] <- Subset
Superset
#$a
#[1] 1
#$b
#[1] 5
#$c
#[1] 6
#$d
#[1] 4
列表
创建似乎有问题。它将是 as.list
Superset <- as.list(1:4)
它将返回 length
4 的 list
,而不是使用 list(1:4)
返回 length
1 >
关于根据名称将列表中的元素替换为另一个列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59671348/