ifelse语句在此嵌套循环中返回错误

时间:2018-09-14 17:30:28

标签: r for-loop if-statement

我运行了以下代码:

for (i in 1:12) {
  if (i %% 2 ==1) print(i)
  ifelse (i=3,"three",i)}

我希望输出每当输出3时就反映单词3。

我收到以下错误:

Error in ifelse(i = 3, "three", 1:12) : unused argument (i = 3)

2 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您希望打印所有的奇数,但是当它为3时,您希望使用文字。您的代码应如下所示:

for (i in 1:12) {
  if (i %% 2 == 1) {
    if (i == 3) {
      print("Three")
    }
    else print(i)
  }
}


#Output
#[1] 1
#[1] "Three"
#[1] 5
#[1] 7
#[1] 9
#[1] 11

答案 1 :(得分:0)

耦合代码中的项目;

  

i = 3

单个等号“ =”表示赋值(与“ <-”相同)。而您正在寻找相等“ ==”

  

如果(i %% 2 == 1)

     

打印(i)

不确定上面的代码在做什么。我想您可以注释掉该代码。

您还需要添加print()。

for (i in 1:12) {
  ifelse (i == 3, print("three"), print(i))
}