Создание новой переменной с использованием двух столбцов, когда они удовлетворяют определенные условия, используя R
-
26-09-2019 - |
Вопрос
Я предоставляю этот пример данных, чтобы получить мой вопрос.
aid=c(1,2,3,4,5,6,7,8,9,10)
foson=c(0,1,2,0,6,9,0,0,3,0)
fosof=c(0,0,2,3,0,0,0,5,0,0)
data=data.frame(aid,foson,fosof)
Теперь мне нужно создать новую переменную (столбец) с именем данных $ HIST со следующими условиями:
if foson==0 and fosof==0, then hist = 0;
if foson >=1 and fosof==0, then hist = 1;
if foson==0 and fosof>=1, then hist = 2; and
if foson>=1 and fosof>=1, then hist = 3
Я пытался использовать функцию «Ifelse», но упал.
Я надеюсь, что вопрос достаточно ясен.
Спасибо за помощь,
Базон
Решение
Решение Рамнатта отлично, но чтобы сделать это с ifelse
Вы могли бы сделать это таким образом:
data$hist <- ifelse(data$foson>=1,ifelse(data$fosof>=1,3,1),ifelse(data$fosof>=1,2,0))
Это, однако, значит, где любой из foson
или fosof
являются <1
это бы выбрать вариант для ==0
, но кажется, что ваши данные это не будет проблемой.
Другие советы
Одно потенциальное решение состоит в том, чтобы сделать следующее
data$hist = (data$foson >=1) + (data$fosof >=1)*2
Это должно дать вам желаемый результат.
Не связан с StackOverflow