Есть ли способ создать новую переменную, обусловленную различными значениями текста в двух других переменных в R Studio - PullRequest
0 голосов
/ 27 февраля 2020

Я ищу функцию, которая позволяет мне создавать новую переменную, основанную на текстовых значениях в двух других переменных.

Переменная x имеет текстовые значения "both" "current" "no" "previous", а переменная y имеет текстовые значения "yes" и "no".

Теперь я хочу создать переменную z, которая имеет текстовое значение yes, если текстовое значение в других переменных равно "both" "current" "previous" или "yes" (так что все остальное чем "no").

Существует ли такая функция, я уверен, что она есть, но я копался в течение нескольких часов, не находя ничего подходящего.

Любая помощь приветствуется - я новичок в форум, и извинения за то, что я не могу привести пример данных, мой набор данных просто слишком большой.

1 Ответ

0 голосов
/ 27 февраля 2020

подходит ли это вашему случаю?

# exemple data with all the cases possible.
df<- data.frame(x = rep(c('both','current','no','previous'),2),
                y = c(rep('yes',4),rep('no',4)), stringsAsFactors = FALSE)
df
#          x   y
# 1     both yes
# 2  current yes
# 3       no yes
# 4 previous yes
# 5     both  no
# 6  current  no
# 7       no  no
# 8 previous  no
#### EDIT ####
# new method corrected via the comments
df$z <- rep('yes',nrow(df))
df$z[df$x == 'no' & df$y == 'no'] <- 'no'
#          x   y   z
# 1     both yes yes
# 2  current yes yes
# 3       no yes yes
# 4 previous yes yes
# 5     both  no yes
# 6  current  no yes
# 7       no  no  no
# 8 previous  no yes

# Old method
# Here I change every row of df$z where df$x is not 'no' and df$y is not 'no'
df$z[df$x != 'no' & df$y != 'no'] <-df$x[df$x != 'no' & df$y != 'no']
# Here I change every row of df$z where df$y is not 'no'. Not sure is this is in your question.
df$z[df$y != 'no'] <-df$y[df$y != 'no']
df
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...