5

これらのようなhtmlとRコードがあり、各ノード値をdata.frameの親IDに関連付ける必要があります。お一人お一人、様々な情報をご用意しております。

example <- "<div class='person' id='1'>
<div class='phone'>555-5555</div>
<div class='email'>jhon@123.com</div>
</div>
<div class='person' id='2'>
<div class='phone'>123-4567</div>
<div class='email'>maria@gmail.com</div>
</div>
<div class='person' id='3'>
<div class='phone'>987-6543</div>
<div class='age'>32</div>
<div class='city'>New York</div>
</div>"

doc = htmlTreeParse(example, useInternalNodes = T)

values <- xpathSApply(doc, "//*[@class='person']/div", xmlValue)
variables <- xpathSApply(doc, "//*[@class='person']/div", xmlGetAttr, 'class')
id <- xpathSApply(doc, "//*[@class='person']", xmlGetAttr, 'id')

# The problem: create a data.frame(id,variables,values)

を使用xpathSApply()すると、電話、メール、年齢の値だけでなく、個人の属性 (id) も取得できます。ただし、これらの情報は分離されており、適切な data.frame 変数と適切な人にそれらを参照する必要があります。私の実際のデータには多くの異なる情報があるため、各変数に名前を付けるこのプロセスは自動化する必要があります。

私の目標は、各 ID を適切なデータに関連付けるこのような data.frame を作成することです。

  id variables          values
1  1     phone        555-5555
2  1     email    jhon@123.com
3  2     phone        123-4567
4  2     email maria@gmail.com
5  3     phone        987-6543
6  3       age              32
7  3      city        New York

xpathSApply人の電話と人のIDを同時に取得する内部で使用する関数を作成する必要があると思うので、それらは関連していますが、これまでのところ成功していません。

誰でも私を助けることができますか?

4

1 に答える 1