Używanie If / Else w ramce danych

Mam zestaw danych, który wygląda jak coś

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)

Chcę teraz utworzyć nową zmienną w tej ramce danych. Jeśli kolumna „dane” zgłasza liczbę 2 lub więcej, chcę, aby w tym wierszu miała „2”, a jeśli jest 1 lub 0 (np. Pierwsze dwie obserwacje), chcę, aby nowa zmienna miała „1” dla tej obserwacji.

Próbuję to zrobić przy użyciu następującego kodu:

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

Jeśli jednak uruchomię te 3 linie skryptu, każda obserwacja w kolumnie „dwupokojowe” jest kodowana za pomocą 2. Jednak pewna ich liczba powinna być zakodowana za pomocą 1.

Więc moje pytanie: co robię źle z linią lub skryptem my if else? Czy istnieje alternatywny sposób, aby to zrobić.

Moje pytanie jest podobne do tego:Użycie ifelse on factor w R

ale nikt nie odpowiedział na to pytanie.

Z góry bardzo dziękuję!

questionAnswers(2)

yourAnswerToTheQuestion