r - 引用同名的列表对象
问题描述
在处理 xml 数据(书目)时,我通过 xmlToList 命令将标签转换为列表。问题是有多个具有相同标签的元素显示为具有相同名称的列表元素,例如,共同创作的作品将具有两个相同的标签,它们成为两个相同的列表对象名称,如 $rec$stuff$record$author。例如:
假设列表称为 A1:
$`rec`$`header`$`controlInfo`$artinfo$aug$au
# [1] "Smith, Bob"
$`rec`$`header`$`controlInfo`$artinfo$aug$au
# [1] "Jones, Mike"
A1$`rec`$`header`$`controlInfo`$artinfo$aug$au
始终是“史密斯,鲍勃”。
在不重命名列表元素的情况下,我似乎找不到一种明显的方法来引用第二个条目“Jones,Mike”(出于解析数据以外的其他原因,我宁愿不这样做)。另外,如果可能的话,如果没有第二个具有相同名称的元素,我需要能够将 NA 分配给第二个位置。有没有办法做到这一点?
提前致谢!
解决方案
您可以使用双括号在 R 中索引列表(请参阅如何在 R 中索引列表对象的元素)。尝试这个:
> rec = list()
> rec
list()
> rec$x = "first"
> rec
$x
[1] "first"
> rec2 = c(rec,rec)
> rec2
$x
[1] "first"
$x
[1] "first"
> rec2$x = "second"
> rec2
$x
[1] "second"
$x
[1] "first"
> rec2[[1]]
[1] "second"
> rec2[[2]]
[1] "first"
> rec2[[2]] = "third"
> rec2
$x
[1] "second"
$x
[1] "third"
推荐阅读
- json - 使用 Xunit 测试 Json
- python - 尝试在 django 中呈现表单时发生页面未找到错误
- java - 如何将通用对象转换为列表
JDK 11 上没有未经检查的强制转换警告 - c - 当使用大于其大小的数据初始化字符数组时,究竟会发生什么?
- orocrm - OroCommerce 问题,OroContactBundle 中的 AttachmentExtension 迁移
- javascript - Nuxt:如何在 fetch() 方法中访问 axios?
- c - 如何正确找到 off_t 大小
- java - 动态操作应用程序属性 - 保险库设置(或任何其他值)
- node.js - 一个返回类型为 undefined 的 Promise 会感染 Promise.all 中带有 undefined 的其他 Promise
- node.js - 我目前正在使用 Google OAuth2.0 构建一个 React 应用程序,完成登录后它不会重定向