R XML синтаксический анализ в фрейм данных - PullRequest
1 голос
/ 28 мая 2020

У меня есть различные XML файлы с информацией, как показано ниже. У меня возникли трудности с синтаксическим анализом этого формата переменной XML в фрейм данных, который может обрабатывать как разное количество метрик, так и дублированные теги свойств.

  <ProducedFruits>
    <FruitType>
      <FruitName>Apple</FruitName>
      <FruitMetrics>
        <Properties Sugars="27.51" Rate="5.03" />
        <Properties Sugars="219.39" Rate="12.19" />
        <Properties Sugars="266.34" Rate="75.9" />
      </FruitMetrics>
    </FruitType>
    <FruitType>
      <FruitName>Lime</FruitName>
      <FruitMetrics>
        <Properties Sugars="1884.2" Rate="5" />
        <Properties Sugars="1884.2" Rate="98.3" />
      </FruitMetrics>
    </FruitType>
    <FruitType>
      <FruitName>Lemon</FruitName>
      <FruitMetrics>
        <Properties Sugars="1064.77" Rate="5" />
        <Properties Sugars="1064.77" Rate="56" />
      </FruitMetrics>
    </FruitType>
    <FruitType>
      <FruitName>Banana</FruitName>
      <FruitMetrics>
        <Properties Sugars="113" Rate="12" />
        <Properties Sugars="113" Rate="79" />
      </FruitMetrics>
    </FruitType>
  </ProducedFruits>

Каждый файл может несколько отличаться, поэтому в идеале я должен был бы создать что-то, что может обрабатывать несогласованное количество значений, которое также сохраняет имя фрукта и создает фрейм данных, подобный тому, который находится внизу.

введите описание изображения здесь

1 Ответ

0 голосов
/ 28 мая 2020

Чтобы передать свой xml в R в качестве фрейма данных, вы можете использовать пакет XML (https://cran.r-project.org/web/packages/XML/), например data <- XML::xmlParse("doc.xml"), затем связать списки вместе с xml_data <- XML::xmlToList(data), затем xml_df <- as.data.frame(xml_data) (за: Как разобрать XML в кадр данных R )

...