2012-05-17 3 views
3

Мне нужно извлечь данные из файла xml и построить графики: глубина vs timestamp. Заголовок должен быть кодом IFC. Я пробовал использовать xmlToList и xmlTodataframe, но мне это не удалось. Мне нужна помощь. Мой файл XML выглядитxml to r data extract

<document> 
    <site> 
     <IFC_code>HONEYCR01</IFC_code> 
     <Latitude>41.960161</Latitude> 
     <Longitude>-90.470759</Longitude> 
     <River>Honey Creek</River> 
     <Road>Hwy 136, 1st Street</Road> 
     <Town>Charlotte</Town> 
     <from_sensor_to_river_bottom>9.35</from_sensor_to_river_bottom> 
     <Unit>foot</Unit> 
    </site> 
    <data> 
     <value> 
      <timestamp>2012-05-17 15:30:03-05</timestamp> 
      <depth>8.53</depth> 
     </value> 
     <value> 
      <timestamp>2012-05-17 14:30:06-05</timestamp> 
      <depth>8.50</depth> 
     </value> 
     <value> 
      <timestamp>2012-05-17 14:15:02-05</timestamp> 
      <depth>8.51</depth> 
     </value> 
     <value> 
      <timestamp>2012-05-17 14:00:12-05</timestamp> 
      <depth>8.50</depth> 
     </value> 
     <value> 
      <timestamp>2012-05-17 13:45:08-05</timestamp> 
      <depth>8.51</depth> 
     </value> 
     </data> 
    </document> 
+2

Что не получилось? Какие сообщения об ошибках вы получили? – sarnold

ответ

6

Это похоже на работу:

library(XML) 
doc <- xmlParse("a.xml") 
xmlToDataFrame(
    getNodeSet(doc, "//value"), 
    colClasses=c("character","numeric") 
) 
+0

Большое спасибо ... это работает lotta thanks – rockswap

+0

Что делать, если я хочу нарисовать график между: from_sensor_to river_bottom vs time? – rockswap

+0

Вам нужно преобразовать метки времени из строк в фактические временные метки. Если '-05' в конце временных меток можно отбросить, вы можете использовать' library (stringr); d $ timestamp <- as.POSIXct (str_trim (d $ timestamp)); plot (depth ~ timestamp, data = d, las = 1, type = "b", pch = 15) '. –