Skip to Content

Using If/Else on a data frame

I have a data set which looks something like

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)

I now want to create a new variable within this data frame. If the column "data" reports a number of 2 or more, I want it to have "2" in that row, and if there is a 1 or 0 (e.g. the first two observations), I want the new variable to have a "1" for that observation.

I am trying to do this using the following code:

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

However if I run these 3 lines of script, every observation in the column "twohouses" is coded with a 2. However a number of them should be coded with a 1.

So my question: what am I doing wrong with my if else line or script? Or is there an alternative way to do this.

My question is similar to this one:
Using ifelse on factor in R

but no one has answered that question.

Many thanks in advance!