2016-08-17 6 views
-1

Я хочу создать формулу в R, чтобы , если это или else if, чтобы вставить соответствующие значения из первых двух столбцов. Например:Ошибка с инструкцией If - else if с NAs R

Fruit  Colour Colour_group 
banana  yellow yellow 
banana  yellow 
pear  green  green 
pear  green 
pineapple yellow yellow 
pineapple yellow 
apple  green  green 
apple  green     


green<-1 
yellow<-1 
for (i in 1:nrow(fruits){ 
    if (fruits$Colour_group[i] == "yellow"){ 
      yellow[i] <- paste(fruits$Fruit[i],fruits$Colour[i]) 
    } else if (fruits$Colour_group[i] == "green"){ 
      green[i] <- paste(fruits$Fruit[i],fruits$Colour[i]) 
    } else { 
    next 
    }} 

Я пытаюсь получить только уникальные значения без ВПЛ, но я получаю только первое значение для желтого (банана желтого) и ничего для зеленого цвета. Не могли бы вы мне помочь? Любые идеи о том, что я делаю неправильно? Наконец, я пробовал с и без NA в пробелах в столбце Colour_group. Благодаря!

+1

Можете ли вы привести воспроизводимый пример? (используйте 'dput') вместе с ожидаемым результатом – Sotos

+0

Я хочу получить вектор символов:« банановый желтый »« ананасовый желтый »и никаких других значений. Надеюсь, я объясню это правильно. – Dimitra

+0

Непонятно, что вам нужно. Дайте ожидаемый результат из данных, предоставленных вами. – Sotos

ответ

0

Почему бы вам просто не подобрать группу цветов и вставить оттуда?

yellow <- fruits[fruits$Colour_group == 'yellow',] 
green <- fruits[fruits$Colour_group == 'green',] 
yellow_fruits <- paste(yellow$Fruit,yellow$Colour) 
green_fruits <- paste(green$Fruit,green$Colour) 
+0

Спасибо, но я получаю вектор символов со значениями в первой и пятой позиции, а остальные - НС. – Dimitra

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