Ifelse NULL: получение числовых значений вместо строковых - PullRequest
0 голосов
/ 02 апреля 2019

Это, кажется, очень легко сделать, но я не смог найти ответ. У меня есть две переменные в моем фрейме данных относительно имен областей Я хочу создать окончательную переменную Area, используя эти две переменные. Если Area2 отсутствует, тогда просто используйте значения Area1, но если Area2 не пропускает, используйте значения Area2.

Area    Area2  Goal
ABC            ABC
ABC            ABC
AAA     AAA    AAA
AA-A    AAA    AAA
A AA    AAA    AAA

data <- data.frame(Area1 = c("ABC", "ABC", "AAA", "AA-A", "A AA"),
                   Area2 =c("", "", "AAA", "AAA", "AAA"))

Моя попытка приведена ниже, но я получаю числовые значения для моей последней переменной вместо строковых значений (даже используя опцию as.factor).

data$AreaFinal <- ifelse(is.na(data$Area2), data$Area1, data$Area2)
data$AreaFinal <- ifelse(is.na(data$Area2), as.factor(data$Area1), data$Area2)

Этот код выглядит нормально? В моих реальных данных Area1 является фактором, а Area 2 является символом.

Заранее спасибо! Марвин

1 Ответ

0 голосов
/ 03 апреля 2019

Решением было преобразовать мою переменную Area1 из фактора в символ data$area1<- as.character(data$area1). Тогда data$areafinal<- with(data, ifelse(is.na(area), area1, area2))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...