【问题标题】:if else multiple conditions comparing rowsif else 多个条件比较行
【发布时间】:2018-11-07 21:16:21
【问题描述】:

我正在为这个循环而苦苦挣扎。我想在“Newcolumn”列的第二行得到“6”。我收到以下错误。

Error in if (mydata$type_name[i] == "a" && mydata$type_name[i -  : 
missing value where TRUE/FALSE needed.

我创建的代码:

id  type_name   name    score   newcolumn
1   a   Car 2   2
1   a   van 2   6
1   b   Car 2   2
1   b   Car 2   2

mydata$newcolumn <-c(0)
for (i in 1:length(mydata$id)){
  if ((mydata$type_name [i] == "a") && (mydata$type_name[i-1] == "a") && ((mydata$name[i]) != (mydata$name[i-1]))){
    mydata$newcolumn[i]=mydata$score[i]*3 }
  else {
    mydata$newcolumn[i]=mydata$score[i]*1
  }
}

非常感谢您

【问题讨论】:

  • 你有解决办法吗?当我尝试比较第 1 行的元素和第 2 行的元素时,我收到了相同的错误消息。我还无法修复解决方案...

标签: r for-loop if-statement rows multiple-conditions


【解决方案1】:

列表从 R 中的索引 1 开始,但就像您在循环中从 1 开始执行 i-1 一样,您的列表超出范围 (i-1=0),因此您的代码无法返回 True 或 False。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2014-09-06
    • 2015-04-21
    相关资源
    最近更新 更多