我很难从XML文件中提取值。我想取每个&#34;长度&#34;的平均值。 (一天中每小时的<length>
标签之间的值)。在此XML文件中,所有数据都来自同一天:2013-11-28
示例如下所示:
<root>
<item>
<time>2013-11-28T00:00:00-05:00</time>
<day>2013-11-28</day>
<length>150</length>
</item>
<item>
<time>2010-11-28T00:15:00-05:00</time>
<day>2010-11-28</day>
<length>200</length>
</item>
<item>
<time>2010-11-28T00:30:00-05:00</time>
<day>2010-11-28</day>
<length>127.83</length>
</item>
</root>
我希望输出看起来像这样:
hour average_length
12:00-12:59 some_average
1:00-1:59 some_average
2:00-2:59 some_average
谢谢!
答案 0 :(得分:1)
使用xml2
包并假设text
为例,我们使用
xml_obj <- read_xml(text)
创建一个xml对象
我们可以使用库中您可以阅读的有关here的各种函数在这些对象中导航。在这种特殊情况下,我们希望找到time
和length
类型的所有元素,然后将它们绑定到data.frame
。
# Find all elements of type time
times <- xml_find_all(xml_obj, '//time') %>% xml_text()
# Find all elements of type length
lengths <- xml_find_all(xml_obj, '//length') %>% xml_text()
# Merge the two to create the final data.frame
final <- data.frame(time = times, length = lengths)
希望这有帮助