2016-04-03 7 views
0

Zum Beispiel möchte ich alle Werte, die als NA dargestellt werden, in einer Datenmenge, die in der Spalte von "x" als "Daten" bezeichnet wird, unterteilen oder konditionieren. Wie es geht? Ich habe den folgenden Code versucht, aber es gab mir 0 Beobachtungen.Wie finden Sie Werte als NA in einem Datenrahmen mit R?

NA1 <- subset(data, data$x==NA) 

Vielen Dank!

+3

Versuchen Sie 'is.na (data $ x)' stattdessen. – Gopala

+2

müssen Sie nicht auf 'data' in' subset' verweisen so 'subset (data, x == NA)'. Außerdem ist "NA" nicht vergleichbar, Sie benötigen also eine spezielle Funktion "Teilmenge (Daten, is.na (x))", aber dies gibt Ihnen einen Datenrahmen. Ich bin mir nicht sicher, ob Sie das wollen oder ein Vektor – rawr

Antwort

0

Ein data.table Paket kann ein sehr bequemes Werkzeug sein, um mit Datensätzen zu arbeiten. Vor allem, wenn die Daten, die Sie bearbeiten, groß sind.

Angenommen, Sie mit zwei Variablen und einer von ihnen eine Datentabelle NA Werte

> DT = data.table(var1=c(1,NA,3,NA), var2=c(5,6,7,8)) 
> DT 
    var1 var2 
1: 1 5 
2: NA 6 
3: 3 7 
4: NA 8 

Dann können Sie einfach which() Befehl haben haben die Teilmenge von NAs oder anwenden ‚nicht‘ Operator vor finden !which() zu Subset diejenigen Zeilen, die NAs in var1 nicht haben.

> DT[which(is.na(var1))] 
    var1 var2 
1: NA 6 
2: NA 8 

Weisen Sie darauf hin, dass die Aussage oben wird nur das Ergebnis drucken und werden keine Änderungen an der ursprünglichen Datentabelle machen.

Here können Sie eine große FAQ auf data.table finden.

+0

Hinweis auf die [neue HTML-Vignetten] (https://github.com/Rdatatable/data.table/wiki/Getting-started) könnte hilfreicher sein. – Arun

Verwandte Themen