これらのような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を同時に取得する内部で使用する関数を作成する必要があると思うので、それらは関連していますが、これまでのところ成功していません。
誰でも私を助けることができますか?