Zahlenvektor aus xml-Dokumenten
Verfasst: Do Nov 29, 2018 2:52 pm
Ich möchte Messwerte, die in xml-Dokumenten hinterlegt sind, zu einem Zahlenvektor zusammenfassen, um dann z.B. einen Mittelwert zu berechnen etc. Hier ein Beispiel XML-Dokument, welches ich doku.xml genannt habe:
Um das Dokument in R zu importieren und die Daten bearbeiten zu können, verwende ich folgende Packages:
Ich importiere doku.xml mit:
Um die "root node form" des xml-Dokumentes in R nutzen zu können, mache ich Folgendes:
Nun kann ich mir den 1. Messwert anzeigen lassen mit:
Den 2. Messwert erhalte ich mit:
Dann dachte ich, könnte ich die Messwerte auch zu einem Messwerte-Vektor zusammenfassen. (Im wahren Leben stehen die Messwerte bei mir in vielen verschiedenen xml-Datein). Ich habe folgenden Befehl verwendet, was R ohne zu meckern ausführt:
Allerdings hat der Vektor dann folgende Struktur:
Und wenn ich den Mittelwert berechnen möchte, erscheint Folgendes:
Wenn ich da z.B. den Mittelwert berechnen will, geht das folgerichtig mit
Ehrlich gesagt verstehe ich nicht, warum R bei dem Befehl > c() eine andere Struktur im Vektor anlegt, wenn ich einen Pfad des Messwertes nenne. Wenn ich dagegen die Zahlen, die zum Vektor zusammengefasst werden sollen, direkt schreibe, erscheint ein normaler Zahlenvektor...
V.a. interessiert mich aber eine Lösung meines Problems...
Vielen Dank
Code: Alles auswählen
<meinDokumentInXML>
<Information>
<ErsteInformation> hier </ErsteInformation>
<ZweiteInformation> da </ZweiteInformation>
</Information>
<Messwerte>
<ErsterMesswert>10</ErsterMesswert>
<ZweiterMesswert>20</ZweiterMesswert>
</Messwerte>
</meinDokumentInXML>
Code: Alles auswählen
> install.packages("XML")
> library("XML")
> library("methods")
Code: Alles auswählen
> xml_doku<-xmlParse(file="doku.xml")
Code: Alles auswählen
> doku <- xmlRoot(xml_doku)
Code: Alles auswählen
> doku[[2]][[1]][[1]]
10
Code: Alles auswählen
> doku[[2]][[2]][[1]]
20
Code: Alles auswählen
> vektor_Messwerte<-c(doku[[2]][[1]][[1]], doku[[2]][[2]][[1]])
Code: Alles auswählen
> vektor_Messwerte
[[1]]
10
[[2]]
20
Ich hätte gern einen Vektor, der folgende Struktur hat:> mean(vektor_Messwerte)
[1] NA
Warnmeldung:
In mean.default(vektor_Messwerte) :
Argument ist weder numerisch noch boolesch: gebe NA zurück
Code: Alles auswählen
> vektor_Zahl<-c(10,20)
> vektor_Zahl
[1] 10 20
Code: Alles auswählen
> mean(vektor_Zahl)
[1] 15
V.a. interessiert mich aber eine Lösung meines Problems...
Vielen Dank