Usando If / Else en un marco de datos

Tengo un conjunto de datos que parece algo así

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)

Ahora quiero crear una nueva variable dentro de este marco de datos. Si la columna "datos" informa un número de 2 o más, quiero que tenga "2" en esa fila, y si hay un 1 o 0 (por ejemplo, las dos primeras observaciones), quiero que la nueva variable tenga un "1" para esa observación.

Estoy tratando de hacer esto usando el siguiente código:

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

Sin embargo, si ejecuto estas 3 líneas de script, cada observación en la columna "dos casas" está codificada con un 2. Sin embargo, algunas de ellas deben codificarse con un 1.

Así que mi pregunta: ¿qué estoy haciendo mal con mi línea o script si no? O hay una forma alternativa de hacer esto.

Mi pregunta es similar a esta:Usando ifelse en el factor R

pero nadie ha respondido a esa pregunta.

¡Muchas gracias de antemano!

Respuestas a la pregunta(2)

Su respuesta a la pregunta