Usando If / Else em um quadro de dados

Eu tenho um conjunto de dados que parece algo como

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)

Agora quero criar uma nova variável dentro desse quadro de dados. Se a coluna "data" informa um número de 2 ou mais, eu quero que tenha "2" nessa linha, e se houver 1 ou 0 (por exemplo, as duas primeiras observações), eu quero que a nova variável tenha um "1" para essa observação.

Eu estou tentando fazer isso usando o seguinte código:

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

No entanto, se eu executar essas 3 linhas de script, cada observação na coluna "duas casas" é codificada com um 2. No entanto, um número delas deve ser codificado com um 1.

Então, minha pergunta: o que estou fazendo de errado com a minha linha ou roteiro? Ou existe uma maneira alternativa de fazer isso?

Minha pergunta é semelhante a esta:Usando ifelse no fator em R

mas ninguém respondeu a essa pergunta.

Muito obrigado antecipadamente!

questionAnswers(2)

yourAnswerToTheQuestion