我正在使用 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_note1
and A_note2
)以及不必要的组,因为它们上面的级别是唯一的(A_group1
and A_group2
)。
我想做的是: 1. 通过删除不必要的组来展平数据 2. 将每个实例视为不同的数据行并将我的实例中的信息堆叠在一起。
我知道这可能在一个帖子上问得太多了,但我想把它放在那里,以防有人已经付出了艰苦的努力来弄清楚如何使它工作。
谢谢,弗朗西斯