gpt4 book ai didi

xml - R:读取连接 XML 数据实例 (ODK)

转载 作者:数据小太阳 更新时间:2023-10-29 02:47:02 26 4
gpt4 key购买 nike

我正在使用 OpenDataKit 的 ODK collect 在现场收集调查数据。目前我正在使用 ODK 聚合在谷歌云上接受数据提交,然后再下载为 CSV 文件。整个过程有些令人沮丧,因为每一步都容易出错。相反,我希望能够将平板电脑中的数据直接读取到 R 中,并为每个级别的数据编译数据帧。

数据以 xml 格式保存为单个实例。现在我们有大约 2000 个不同的实例。当使用 XML 将单个实例读入 R 时,数据最终以以下方式查找:

  <A_note/>
<A_group1>
<A_note1/>
<A_note2/>
<A01>2</A01>
</A_group1>
<A_group1.5>
<A02>901</A02>
<A02a/>
</A_group1.5>
<A_group2>
<A03>9</A03>
<A03a/>
<HH_key>9010</HH_key>
<A04a/>
<A06/>
<A07/>
</A_group2>
<A_group3>
<A04>9</A04>
<A04a_note/>
<A06_note/>
<A07_note/>
<A04a_int>840256790</A04a_int>
<A05>2</A05>
<A06a>Baixo Umbeluze, perto do rio Umbeluze.</A06a>
<A07a>-26.057376459502194 32.33107993182396 15.271170877998825 4.0</A07a>

我们可以看到有很多没有任何信息的标签(例如A_note1A_note2)以及不需要的组,因为它们之上的级别是唯一的(A_group1A_group2)。

我希望能够做的是:1.通过删除不必要的组来扁平化数据2. 将每个实例视为不同的数据行,并将来 self 的实例的信息堆叠在一起。

我知道在一个帖子中提出这个问题可能太多了,但我想把它放在那里,以防有人已经付出了艰苦的努力来弄清楚如何使这项工作成功。

谢谢,弗朗西斯

最佳答案

我知道这已经晚了 4 年......

ruODK正是解决了这个问题。 XML 的名称、 namespace 和属性的复杂性转化为 R 中的嵌套列表。

根据您问题的年龄来判断,您一定一直在使用 ODK Aggregate , 被 ODK Central 取代. ODK Central 实现聚合的 OpenRosa API ,加上 RESTful API,加上 OData API 端点。旁注:出色的交互式 API 文档是 here - JavaRosa 端点也应该适用于 ODK 聚合。

要了解如何在 R 中取消嵌套 XML/嵌套列表,您可以:

请注意,ruODK 使用的 tidyr 功能已在您提出问题后大约四年实现,并且 ruODK 构建在它们之上.

希望这对您有所帮助!

编辑为 HT @muntashir-al-arefin谁编写了 R 包“odk”。他的包与 ruODK README 中的其他类似包进行了比较.

关于xml - R:读取连接 XML 数据实例 (ODK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com