无法在R中获得所需的输出

时间:2018-02-02 10:36:21

标签: r if-statement

我试图在x中添加一个Fav列,如果x2超过50%,则会为app提供。 但是,我没有添加任何专栏。请帮忙。

Warning message:
In if (x$x2per > 50) { :
  the condition has length > 1 and only the first element will be used
> x
  x1 x2 x3    x2per    x3per
1  1  2  3 40.00000 60.00000
2  2  3  2 60.00000 40.00000
3  3  4  5 44.44444 55.55556
4  4  5  2 71.42857 28.57143
5  5  6  5 54.54545 45.45455
> 

我得到以下输出。

<ion-content #content>
</ion-content>

2 个答案:

答案 0 :(得分:2)

ifelse用于矢量化if语句

x$Fav <- ifelse(x$x2per > 50, "APP", "LF")

答案 1 :(得分:1)

或者您可以为所有观察值分配一个值,然后在x2per符合您的条件时覆盖。

x$Fav <- "LF"
x$Fav[x$Fav > 50] <- "App"

如果您希望if循环起作用,则需要使用索引。

x$Fav <- NA
for (i in 1:nrow(x)) {
  if(x$x2per[i] > 50) {
    x$Fav[i] <- "App"
  }
  } else {
    x$Fav[i] <- "LF"
  }
}