Ho un codice html e un codice R come questi e ho bisogno di correlare ogni valore del nodo al suo id genitore in un data.frame. Ci sono alcune informazioni diverse disponibili per ogni persona.R: Come ottenere gli attributi parent e i valori del nodo al momento del sito?
example <- "<div class='person' id='1'>
<div class='phone'>555-5555</div>
<div class='email'>[email protected]</div>
</div>
<div class='person' id='2'>
<div class='phone'>123-4567</div>
<div class='email'>[email protected]</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)
Con xpathSApply()
, posso ottenere valori di telefono, e-mail, e di età così come persona attributi (id) troppo. Tuttavia, tali informazioni vengono isolate e ho bisogno di farle riferimento alla giusta variabile data.frame e alla persona giusta. Nei miei dati reali ci sono molte informazioni diverse, quindi questo processo di denominazione di ciascuna variabile deve essere automatico.
Il mio obiettivo è creare un data.frame come questo che rapporta ciascun ID ai propri dati.
id variables values
1 1 phone 555-5555
2 1 email [email protected]
3 2 phone 123-4567
4 2 email [email protected]
5 3 phone 987-6543
6 3 age 32
7 3 city New York
credo che avrei dovuto creare una funzione da utilizzare all'interno xpathSApply
che sarebbe ottenere allo stesso tempo il telefono persona e la ID persona, in modo che sarebbero legati, ma non hanno avuto alcun successo con così lontano.
Qualcuno può aiutarmi?