2017-06-06 12 views
0
Arbeits

I aus Rahmendaten bezeichnet x:r: subsetting mit eckigen Klammern nicht

a b 
1 2 
3 NA 
3 32 
21 7 
12 8 

Als ich laufen

y <- x["a">2,] 

Das Objekt y zurückgegeben wird, ist identisch mit x. Wenn ich laufe

y <- x["a" == 1,] 

y ist ein leerer Rahmen.

Ich stellte sicher, dass die Namen des x-Datenrahmens keine Leerzeichen haben (ich nannte sie selbst mit Namen()) und auch das a und sind numerisch.

PS: Wenn ich versuche,

y <- x["a">2] 

y auch als identisch mit x zurückgegeben.

Antwort

3

Sie machen einen Fehler beim Verweisen auf die Spalte data.framex.

"a">2 bedeutet Charakter a größer als zwei ist, nicht variable a von data.framex. Sie müssen entweder x$a oder x["a"] hinzufügen, um auf Ihre data.frame-Spalte zu verweisen.

versuchen

y <- x[x$a >2 ,]

oder

y <- x[x["a"] >2 ,]

oder noch deutlicher

ix <- x["a"] > 2 

y <- x[ix,] 
+0

Vielen Dank –

0

eine einfache Alternative wäre mit data.table

librarry(data.table) 

setDT(x) 

y <- x[ a > 2, ] 

y <- x[ a == 1, ] 
Verwandte Themen