さまざまな方法でRで分析するためにXMLファイルから値を抽出する

krofox

さまざまな方法でRで分析するためにXMLファイルから値を抽出しようとしています。xmlファイルのURLは次のとおりです:http//reports.ieso.ca/public/GenOutputbyFuelHourly/PUB_GenOutputbyFuelHourly_2015.xml

library(XML)
library(plyr)
library(ggplot2)
library(gridExtra)  

data<-"http://reports.ieso.ca/public/GenOutputbyFuelHourly/PUB_GenOutputbyFuelHourly_2015.xml"
xmlfile=xmlParse(data)
class(xmlfile) #"XMLInternalDocument" "XMLAbstractDocument"

xmltop = xmlRoot(xmlfile) #gives content of root
class(xmltop)#"XMLInternalElementNode" "XMLInternalNode" "XMLAbstractNode"
xmlName(xmltop) #give name of node, PubmedArticleSet
xmlSize(xmltop) #how many children in node, 19
xmlName(xmltop[[1]]) #name of root's children

class(data)
str(data)
topxml <- xmlRoot(data)
topxml <- xmlSApply(topxml,
                   function(x) xmlSApply(x, xmlValue))
xml_df <- data.frame(t(topxml),
                     row.names=NULL)

以前は常にcsvファイルを使用していました。xmlデータは初めてで、昨日から試しています。

どんな助けでもいただければ幸いです。

ありがとう。

カール・ボネリ

これをdata.frameに取り込もうとしていると思います。あなたが提供したドキュメントのxml構造を調べましたが、収集できたものから、次の列で確認したいデータがありますc("date", "hour", "fuel_type", "quality", "fuel_output")xpathを使用するのが良い方法です。これは良いスタートです

その場合は、これを実現するために使用したコードを次に示します。非常に遅いことに注意してください...そして何らかの理由でノード84がエラーをスローします。しかし、これで開始できます。

# Read in the raw document
library(xml2)
library(dplyr)
raw <- read_html('http://reports.ieso.ca/public/GenOutputbyFuelHourly/PUB_GenOutputbyFuelHourly_2015.xml')

# Use xpath to get all nodes for <DailyData>, which is actually lowercase in the doc
daily_nodes <- xml_find_all(raw, ".//dailydata")

# loop through and extract the information from the childnoded
# 
o <- lapply(daily_nodes,function(i){
    day <- xml_find_all(i, ".//day") %>% xml_text()
    hourly <- xml_find_all(i, ".//hourlydata")
    tryCatch({
        rbind_pages(lapply(hourly, function(j){
        n_hour <- xml_find_all(hourly, ".//hour") %>% xml_text() %>% as.numeric()
        fuel_type <- xml_find_all(j, ".//fueltotal/fuel") %>% xml_text()
        fuel_qual <- xml_find_all(j, ".//descendant::outputquality") %>% xml_text() %>% as.numeric()
        fuel_output <- xml_find_all(j, ".//descendant::output") %>% xml_text() %>% as.numeric()
        data.frame(hour = n_hour, type = fuel_type, qual = fuel_qual, output = fuel_output)
    })) %>% mutate(date = day) %>% select(date, 1:4)
    }, error = function(e){
        NA
    })
})
# This will be the data.frame with all info
odf <- rbind_pages(o[mapply(is.data.frame,o)])
# Number of rows
> nrow(odf)
[1] 209664
# Showing number of hourly records for just one date...
> filter(odf, date == "2015-01-01") %>% count(hour)
# A tibble: 24 x 2
    hour     n
   <dbl> <int>
 1     1    24
 2     2    24
 3     3    24
 4     4    24
 5     5    24
 6     6    24
 7     7    24
 8     8    24
 9     9    24
10    10    24
# … with 14 more rows

# Showing how many records per date exist
> count(odf, date)
# A tibble: 364 x 2
   date           n
   <chr>      <int>
 1 2015-01-01   576
 2 2015-01-02   576
 3 2015-01-03   576
 4 2015-01-04   576
 5 2015-01-05   576
 6 2015-01-06   576
 7 2015-01-07   576
 8 2015-01-08   576
 9 2015-01-09   576
10 2015-01-10   576
# … with 354 more rows

で分析を実行します odf

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonでファイルからさまざまな変数を抽出する

分類Dev

リスト(datetime.timedelta)から特定の日をループするために使用し、さまざまなcsvファイルに抽出する方法

分類Dev

Yii2でさまざまな目的のためにさまざまなログファイルを維持する方法

分類Dev

vimxmlファイルから抽出された値で行を挿入する方法

分類Dev

JAXB:XMLファイルからさまざまな形式の日付を解析するメソッドを作成する最良の方法は何ですか

分類Dev

さまざまな変数から結果を出力するためにRでテキストファイルを作成するにはどうすればよいですか?

分類Dev

Snakemake-互いに数値で描かれたさまざまなファイルを入力するにはどうすればよいですか?

分類Dev

csvファイルから抽出された文字列からさまざまな複数の文字列を削除する方法

分類Dev

セルに含まれるさまざまなファイルの場所から値を取得するExcel

分類Dev

Pythonで入力された巨大なファイルから特定の値を解析/抽出する方法は?

分類Dev

Mavenでさまざまな実行環境にさまざまなweb.xmlファイルを使用する方法

分類Dev

さまざまなドライブの場所にあるファイルにアクセスするために実装するGoogleAPIはどれですか?

分類Dev

HTMLファイルから抽出された値を格納する変数を出力できません

分類Dev

C#のファイルからさまざまなノード値を取得する簡単な方法は?

分類Dev

Goでさまざまな要素を含む巨大なXMLファイルを解析する方法は?

分類Dev

Reactでファイルをインポートするさまざまな方法

分類Dev

異なる色の境界線を表示するために Single Drawable Xml ファイルを使用できますか?

分類Dev

PythonでXMLファイルから@valueを抽出する方法は?

分類Dev

Groovy で XML ファイルから属性 ID を抽出する方法

分類Dev

さまざまな部分でファイルを解析する

分類Dev

さまざまな変数を1つで読み取る方法には、ファイルからスペースを含む文字列があります

分類Dev

Cのファイルからさまざまな値を読み取り、条件に基づいて印刷する

分類Dev

さまざまな間隔でリストから値を抽出する方法(リストで定義)

分類Dev

さまざまな環境でAndroidManifestファイルを処理する方法

分類Dev

PostgreSQLでさまざまな形式から日付を抽出する

分類Dev

JavaでJSONファイルから値を抽出する方法は?

分類Dev

Dolphinのさまざまなフォルダでファイルを並べ替える方法を変更するにはどうすればよいですか?

分類Dev

ns3のフローモニターで生成されたxmlファイルからrts、cts、およびackに関する情報を抽出します

分類Dev

特定の時点までファイル名のさまざまな文字を削除するためのbashコードは何ですか?

Related 関連記事

  1. 1

    Pythonでファイルからさまざまな変数を抽出する

  2. 2

    リスト(datetime.timedelta)から特定の日をループするために使用し、さまざまなcsvファイルに抽出する方法

  3. 3

    Yii2でさまざまな目的のためにさまざまなログファイルを維持する方法

  4. 4

    vimxmlファイルから抽出された値で行を挿入する方法

  5. 5

    JAXB:XMLファイルからさまざまな形式の日付を解析するメソッドを作成する最良の方法は何ですか

  6. 6

    さまざまな変数から結果を出力するためにRでテキストファイルを作成するにはどうすればよいですか?

  7. 7

    Snakemake-互いに数値で描かれたさまざまなファイルを入力するにはどうすればよいですか?

  8. 8

    csvファイルから抽出された文字列からさまざまな複数の文字列を削除する方法

  9. 9

    セルに含まれるさまざまなファイルの場所から値を取得するExcel

  10. 10

    Pythonで入力された巨大なファイルから特定の値を解析/抽出する方法は?

  11. 11

    Mavenでさまざまな実行環境にさまざまなweb.xmlファイルを使用する方法

  12. 12

    さまざまなドライブの場所にあるファイルにアクセスするために実装するGoogleAPIはどれですか?

  13. 13

    HTMLファイルから抽出された値を格納する変数を出力できません

  14. 14

    C#のファイルからさまざまなノード値を取得する簡単な方法は?

  15. 15

    Goでさまざまな要素を含む巨大なXMLファイルを解析する方法は?

  16. 16

    Reactでファイルをインポートするさまざまな方法

  17. 17

    異なる色の境界線を表示するために Single Drawable Xml ファイルを使用できますか?

  18. 18

    PythonでXMLファイルから@valueを抽出する方法は?

  19. 19

    Groovy で XML ファイルから属性 ID を抽出する方法

  20. 20

    さまざまな部分でファイルを解析する

  21. 21

    さまざまな変数を1つで読み取る方法には、ファイルからスペースを含む文字列があります

  22. 22

    Cのファイルからさまざまな値を読み取り、条件に基づいて印刷する

  23. 23

    さまざまな間隔でリストから値を抽出する方法(リストで定義)

  24. 24

    さまざまな環境でAndroidManifestファイルを処理する方法

  25. 25

    PostgreSQLでさまざまな形式から日付を抽出する

  26. 26

    JavaでJSONファイルから値を抽出する方法は?

  27. 27

    Dolphinのさまざまなフォルダでファイルを並べ替える方法を変更するにはどうすればよいですか?

  28. 28

    ns3のフローモニターで生成されたxmlファイルからrts、cts、およびackに関する情報を抽出します

  29. 29

    特定の時点までファイル名のさまざまな文字を削除するためのbashコードは何ですか?

ホットタグ

アーカイブ