Преобразование данных XML в плоский файл в R - PullRequest
3 голосов
/ 04 декабря 2011

Я работаю с некоторыми данными XML, которые мне нужно преобразовать в плоский файл, чтобы я мог выполнять статистический анализ.Я анализирую данные с использованием R. Вот как выглядит пример данных:

<production xmlns="" diffgr:id="production1130" msdata:rowOrder="1129">
  <ENTITY_ID>116484210</ENTITY_ID>
  <LIQ>0</LIQ>
  <GAS>163</GAS>
  <WTR>0</WTR>
  <WCNT>1</WCNT>
  <DAYS>0</DAYS>
</production>
<production xmlns="" diffgr:id="production1131" msdata:rowOrder="1130">
  <ENTITY_ID>116484210</ENTITY_ID>
  <LIQ>12</LIQ>
  <GAS>130</GAS>
  <WTR>0</WTR>
  <WCNT>1</WCNT>
  <DAYS>0</DAYS>
</production>

Я хотел бы перевести этот файл в плоский файл, который выглядит следующим образом:

PRODUCTION_ID, ENTITY_ID, LIQ, GAS, WTR, WCNT, DAYS

Есть предложения?

Спасибо, Z

1 Ответ

8 голосов
/ 04 декабря 2011

Простой пример:

install.packages("XML")
library("XML")
doc = xmlInternalTreeParse("/Users/ras/test.xml") # your path goes here
myframe = xmlToDataFrame(doc)
myframe

Урожайность:

  ENTITY_ID LIQ GAS WTR WCNT DAYS
1 116484210   0 163   0    1    0
2 116484210  12 130   0    1    0

test.xml:

<stuff>
    <production xmlns="" diffgr:id="production1130" msdata:rowOrder="1129">
      <ENTITY_ID>116484210</ENTITY_ID>
      <LIQ>0</LIQ>
      <GAS>163</GAS>
      <WTR>0</WTR>
      <WCNT>1</WCNT>
      <DAYS>0</DAYS>
    </production>
    <production xmlns="" diffgr:id="production1131" msdata:rowOrder="1130">
      <ENTITY_ID>116484210</ENTITY_ID>
      <LIQ>12</LIQ>
      <GAS>130</GAS>
      <WTR>0</WTR>
      <WCNT>1</WCNT>
      <DAYS>0</DAYS>
    </production>
</stuff>
...