Mam kod html i R jak te i trzeba powiązać każdą wartość węzła z jej identyfikatorem nadrzędnym w data.frame. Dla każdej osoby dostępne są różne informacje.R: Jak uzyskać atrybuty nadrzędne i wartości węzłów w czasie witryny?
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)
Z xpathSApply()
, mogę dostać wartości telefonu, e-mail i wiek, a także atrybuty osoba (ID) też. Jednak te informacje są izolowane i muszę je odnieść do właściwej zmiennej data.frame i właściwej osoby. W moich prawdziwych danych jest wiele różnych informacji, więc ten proces nazywania każdej zmiennej musi być automatyczny.
Moim celem jest utworzenie elementu data.frame, który odpowiada każdemu idowi odpowiednich danych.
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
wierzę, że będę musiał utworzyć funkcję używać wewnątrz xpathSApply
który dostanie w tym samym czasie przez telefon osoba i osoba id, więc będą one powiązane, ale nie miałem żadnych sukcesów z do tej pory.
Czy ktoś może mi pomóc?