Использование If/Else для фрейма данных

У меня есть набор данных, который выглядит примерно так

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)

Теперь я хочу создать новую переменную в этом фрейме данных. Если в столбце «данные» указано число 2 или более, я хочу, чтобы в этой строке было «2», а если есть 1 или 0 (, например. первые два наблюдения ), я хочу, чтобы новая переменная имела «1» для этого наблюдения.

Я пытаюсь сделать это, используя следующий код:

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

Однако если я запущу эти 3 строки сценария, каждое наблюдение в столбце «два дома» будет закодировано цифрой 2. Однако ряд из них должен быть закодирован цифрой 1.

Итак, мой вопрос :, что я делаю неправильно с моей строкой или сценарием if else? Или есть альтернативный способ сделать это.

Мой вопрос похож на этот: Использование ifelse для фактора в R

но никто не ответил на этот вопрос.

Спасибо заранее!

26
задан Community 23 May 2017 в 12:34
поделиться