基本停止功能是否阻止我解析列表?

时间:2015-08-26 03:21:48

标签: xml r

我可能会错过使用lapply,但我很好奇,如果在lapply中使用stop作为函数。我也欢迎任何简化我的代码的建议。

library(XML)
full_url <- "http://bustracker.muni.org/InfoPoint/XML/stopdepartures.xml"
xml_obj <- xmlParse(full_url)
departure_list <- xmlToList(xml_obj)
lapply(departure_list, function(x) x$stop$departure$edt)

1 个答案:

答案 0 :(得分:2)

base::stop未被调用。

它看起来像每个列表条目,但第一个名为stop。此名称将由lapply执行的子集操作删除,并重新应用于结果。因此,传递给函数的x没有名为stop的元素,但它有一个名为departure的元素。

我想你想要这个:

lapply(departure_list, function(x) x$departure$edt)

原始数据如下所示:

<departures>
    <generated timezone="-9">2015-08-25 19:38</generated>
    <stop>
        <id>1437</id>
        <name>BAXTER and NORTHERN LIGHTS</name>
        <departure mode="destination">
            <edt>20:10</edt>
            <sdt>20:10</sdt>
            <dev>0</dev>
            <text>1 MULDOON</text>
            <route>
                <id>1</id>
                <name>CROSSTOWN</name>
            </route>
            <dir>I</dir>
        </departure>
        <departure mode="destination">
            <edt>21:10</edt>
            <sdt>21:10</sdt>
            <dev>0</dev>
            <text>1 MULDOON</text>
            <route>
                <id>1</id>
                <name>CROSSTOWN</name>
            </route>
            <dir>I</dir>
        </departure>
...