2016-12-11 6 views
1

BeispieldatenWie die Spalte drucken, wenn eine andere Spalte die Bedingung

erfüllt
a <- c(1,2,2,3) 
b <- c(1,2,3,4) 
dat <- data.frame(a,b) 

Ich möchte die Spalte 2, wenn alle Daten aus der Spalte 1> = 2

which(dat[,1]>=2) 

Dies ist zum Drucken nur zeigen, welche Reihe von column2 größer als 2 ich erwarte, dass es zeigen:

[1] 2 3 4 

Sorry für meine schlechtes Englisch und hoffe du kannst es verstehen.

+2

Ich glaube, Sie wollen 'dat [dat $ a> 2, 2]' oder 'dat $ b [dat $ a> 2 ] 'oder' mit (dat, b [a> 2]) '. – lmo

+0

ist es möglich, dat $ a nicht zu verwenden? Ich möchte dat [, 1] verwenden – Alvin

+1

Akrun gibt ein Beispiel, ein anderes ist 'dat [2] [dat [1]> = 2]'. Seien Sie vorsichtig bei der Verwendung von Positionsargumenten, da diese nicht so stabil/klar sind wie die Verwendung von Namen. – lmo

Antwort

1

Wenn wir die entsprechenden Werte in der 2. Spalte benötigen, verwenden Sie die [

dat[,2][dat[,1]>=2] 
#[1] 2 3 4 
+0

danke für deine Antwort. Sorry für meinen Tippfehler, ich habe ihn schon bearbeitet. Meine erwartete Ausgabe sollte jedoch # sein. [1] 2 3 4 – Alvin

+0

@Alvin Ihr Code zeigt bereits das 'which (dat [, 1]> = 2) # [1] 2 3 4'. Ich bin mir nicht sicher, was Ihre erwartete Ausgabe jetzt ist? – akrun

+0

@Alvin Der Beitrag wurde aktualisiert. Die Werte in Ihrer erwarteten verwirrte mich – akrun

Verwandte Themen