Verwenden von If / Else für einen Datenrahmen

Ich habe einen Datensatz, der ungefähr so ​​aussieht

data<-c(0,1,2,3,4,2,3,1,4,3,2,4,0,1,2,0,2,1,2,0,4)
frame<-as.data.frame(data)

Ich möchte jetzt eine neue Variable in diesem Datenrahmen erstellen. Wenn die Spalte "data" eine Zahl von 2 oder mehr enthält, soll die Zeile "2" enthalten. Wenn eine 1 oder 0 vorhanden ist (z. B. die ersten beiden Beobachtungen), soll die neue Variable eine haben "1" für diese Beobachtung.

Ich versuche dies mit dem folgenden Code zu tun:

frame$twohouses<- if (any(frame$data>=2)) {frame$twohouses=2} else {frame$twohouses=1}

Wenn ich jedoch diese 3 Skriptzeilen ausführe, wird jede Beobachtung in der Spalte "zwei Häuser" mit einer 2 codiert. Einige von ihnen sollten jedoch mit einer 1 codiert werden.

Also meine Frage: Was mache ich falsch mit meiner if else-Zeile oder meinem Skript? Oder gibt es eine alternative Möglichkeit, dies zu tun.

Meine Frage ist ähnlich wie diese:Verwendung von ifelse on factor in R

aber niemand hat diese Frage beantwortet.

Vielen Dank im Voraus!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage