2016-04-16 2 views
-2

Я пытаюсь добавить фактор-переменную «Экономика» с уровнями «Разработано» и «Развиваться» в моем наборе данных, который имеет список стран.ifelse statement - добавить переменную на основе условия

Что я делаю неправильно?

Developed <- data.frame(c("Andorra", "Faroe Islands", "Ireland", "Monaco", "Spain", "Australia", "Finland", 
      "Israel", "Netherlands", "Sweden", "Austria", "France", "Italy", "New Zealand", "Switzerland", 
      "Belgium", "Germany", "Japan", "Norway", "Turkey", "Bermuda", "Greece", "Liechtenstein", 
      "Portugal", "United Kingdom", "Canada", "Holy See", "Luxembourg", "San Marino", "United States", 
      "Denmark", "Iceland", "Malta", "South Africa", "Hong Kong", "South Korea", "Singapore", "Taiwan")) 
names(Developed) <- "Country" 

total$Economy <- ifelse(d$Country==Developed$Country, "Developed", "Developing") 

Это производит следующее сообщение об ошибке:

Warning messages: 
1: In is.na(e1) | is.na(e2) : 
longer object length is not a multiple of shorter object length 
2: In `==.default`(data$Country, Developed$Country) : 
longer object length is not a multiple of shorter object length 
+1

Что такое 'd' здесь? пожалуйста, сделайте код воспроизводимым. – Psidom

+1

Это говорит вам, что у вас больше стран в 'd', чем в' Developped'. Он выкинет эту ошибку, если длина не соответствует, когда вы используете '=='. Попробуйте 'ifelse (d $ Country% in% Developed $ Country," Developed "," Developing ") вместо – DJJ

ответ

0

@DJJ,

ifelse(d$Country%in%Developed$Country, "Developed", "Developing") 

работал отлично! Задача решена.

Смежные вопросы