Daten aus Matrix filtern

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Antworten
FR1712
Beiträge: 13
Registriert: So Nov 11, 2018 11:23 pm

Daten aus Matrix filtern

Beitrag von FR1712 » So Nov 18, 2018 12:59 pm

Hallo alle zusammen,

ich habe eine große Datenmatrix vorliegen, deren Einträge allesamt den Datentyp double bzw. NA aufweisen. Ich will mir gern die Spalten als Boxplots im gemeinsamen Diagramm anzeigen lassen. Funktioniert soweit auch alles bestens. Problem ist, dass R die NAs als Einträge vom Wert Null auffasst. Das macht natürlich meine Boxplots kaputt. Prinzipiell darf der Wert 0 nicht auftauchen.

Hat jemand eine Idee, wie ich das Problem lösen kann? Ich will eigentlich nicht für jede Spalte einzeln sagen, dass der Wert größer Null sein soll.

Vielen Dank schonmal!

jogo
Beiträge: 1308
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten aus Matrix filtern

Beitrag von jogo » So Nov 18, 2018 1:17 pm

Hallo FR1712,

kannst Du uns denn ein reproduzierbares Beispiel liefern, siehe viewtopic.php?f=20&t=11 ?

Gruß, Jörg

FR1712
Beiträge: 13
Registriert: So Nov 11, 2018 11:23 pm

Re: Daten aus Matrix filtern

Beitrag von FR1712 » So Nov 18, 2018 1:45 pm

Ja... so sollte das aussehen:

Code: Alles auswählen

'data.frame':	469 obs. of  42 variables:
 $ 1815: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1816: num  18.5 NA NA NA NA ...
 $ 1817: num  NA NA 117 NA NA ...
 $ 1818: num  NA NA 9.27 NA NA ...
 $ 1819: num  NA NA NA 139 NA ...
 $ 1820: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1821: num  NA NA NA NA NA ...
 $ 1822: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1823: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1824: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1825: num  NA NA NA NA NA ...
 $ 1826: num  NA NA NA NA NA ...
 $ 1827: num  NA NA NA NA NA ...
 $ 1828: num  NA NA NA NA NA ...
 $ 1829: num  NA NA 15.15 NA 4.64 ...
 $ 1830: num  NA NA NA NA 69.6 ...
 $ 1831: num  NA NA NA NA NA ...
 $ 1832: num  NA NA NA NA 48.9 ...
 $ 1833: num  NA NA NA NA NA ...
 $ 1834: num  NA NA NA NA NA ...
 $ 1835: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1836: num  NA NA NA NA NA ...
 $ 1837: num  NA NA NA NA NA ...
 $ 1838: num  NA NA NA NA 92.7 ...
 $ 1839: num  NA NA NA NA 19.2 ...
 $ 1840: num  NA NA NA NA NA ...
 $ 1841: num  NA NA NA NA NA ...
 $ 1842: num  NA NA NA 154 NA ...
 $ 1843: num  NA NA 23.4 NA NA ...
 $ 1844: num  NA NA 413 NA NA ...
 $ 1845: num  NA NA NA NA NA ...
 $ 1846: num  NA NA NA NA NA ...
 $ 1847: num  NA NA NA NA NA ...
 $ 1848: num  NA 49.5 NA NA NA ...
 $ 1849: num  NA 383 NA NA NA ...
 $ 1850: num  NA 43.4 NA NA NA ...
 $ 1851: num  NA NA NA NA NA ...
 $ 1852: num  NA NA NA NA NA ...
 $ 1853: num  NA NA 903 NA NA ...
 $ 1854: num  NA NA NA NA NA ...
 $ 1855: num  NA NA NA NA NA NA NA NA NA NA ...
 $ 1856: num  NA NA NA NA NA ...
Ich will gerne zu jedem Jahr einen Boxplot haben. Wenn ich auf den dataframe einfach boxplot anwende, zeigt mir R das prinzipiell schon erstmal so an, wie ich das möchte, nur dass es die NAs als Nullen behandelt.

jogo
Beiträge: 1308
Registriert: Fr Okt 07, 2016 8:25 am

Re: Daten aus Matrix filtern

Beitrag von jogo » So Nov 18, 2018 4:31 pm

Hallo FR1712,

das ist kein reproduzierbares Beispiel! Daraus kann ich Deine Daten nicht rekonstruieren.
Dies ist ein reproduzierbares Beispiel:

Code: Alles auswählen

Iris <- iris
set.seed(42)

Iris[, 1:4] <- lapply(Iris[1:4], function(x) { n <- sample(5:30, 1); x[sample.int(150, n)] <- NA; x })
summary(Iris)

boxplot(Iris[1:4])
Solange Du mir kein anderes reproduzierbares Beispiel lieferst, sollten wir den Sachverhalt an diesen Daten diskutieren. Leider sehe ich das von Dir beschriebene Problem nicht.

Gruß, Jörg

FR1712
Beiträge: 13
Registriert: So Nov 11, 2018 11:23 pm

Re: Daten aus Matrix filtern

Beitrag von FR1712 » So Nov 18, 2018 6:11 pm

Hallo Jörg,

bitte um Entschuldigung. Ich habe meinen Fehler gefunden. Dass du das Problem nicht siest, könnte daran liegen, dass es gar nicht in der Form bestanden hat. Sorry. R hat die NAs nicht als Nullen behandelt, sondern wie gewünscht einfach weggelassen. Nur sind die Werte einfach größtenteils im Hunderter-Bereich gewesen, während einige Extreme in die 50.000 gingen.

Das tut mir Leid. Ich werde mich bemühen, zukünftig bessere Fragen zu stellen.
Kann ich das Thema wieder irgendwie schließen?

Danke und Gruß!

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast