If - else if语句与NAs R出错

时间:2016-08-17 13:49:19

标签: r

我想在R中创建一个公式 if this或 else if else ,以粘贴前两列中的相应值。例如:

 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列的空白处尝试使用和不使用NA。谢谢!

1 个答案:

答案 0 :(得分: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)