r - 如何将第二个列表中的元素附加到R中第一个列表中的现有元素
问题描述
我有两个列表 x 和 y:
x <- list(id1 = list(a = list(t = 5)), id2 = list(a = list(t = 1), b = list(t = 3)), id3 = list(a = list(t = 1), b = list(t = 2)))
y <- list(b = list(k = 7))
我需要修改 x 列表并从 y 列表中添加相应的“b”元素以获得 z 列表:
z <- list(id1 = list(a = list(t = 5)), id2 = list(a = list(t = 1), b = list(t = 3, k = 7)),
id3 = list(a = list(t = 1), b = list(t = 2, k = 7)))
我尝试使用list_modify(x, y)
and list_merge(x, !!!y)
from purrr
package 但得到错误的结果。如何在 R 中做到这一点?
解决方案
在这种情况下,您可以这样做:
result <- lapply(x, function(i) {
if("b" %in% names(i)) i$b <- append(i$b, y$b); i;
})
这样
identical(result, z)
#> [1] TRUE
推荐阅读
- elasticsearch - 当查询文本为字母数字模式时,Elasticsearch 将返回所有记录
- asp.net - ASP.Net 2.0:提交后表单不重定向
- android - 无法从 firebase 检索数据(java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.String)
- server - 尝试 ping 服务器时,我不断收到请求超时,这可能是我的错吗?
- android - 将 adb 输出分配给批处理脚本中的变量
- amazon-web-services - lambda 函数中的 Rest-API 调用失败
- javascript - VS Code 显示模块未找到,即使 WebPack 构建有效
- html - 如何在 Mobile Res 上更改字体颜色
- python - 如何使用 sympy 为 x 的正弦生成泰勒级数
- java - 在 xml 文件中找不到元素“beans”错误的声明