【问题标题】:If else checking columns in For loop - RIf else 检查 For 循环中的列 - R
【发布时间】:2017-11-11 00:56:35
【问题描述】:

我有一个非常简单的问题让我很困惑。我试图在 for 循环中编写一个 if 语句,以检查列中的值是否大于另一列,但由于某种原因,我的循环运行一次并退出。这是我的代码

for (i in nrow(cleaned_us_news)){
  school=0
  if(Instructional.expenditure.per.student[i] > Out.of.state.tuition[i]){
    school = school + 1
  }
}

【问题讨论】:

  • 看起来您缺少1:nrow(cleaned_us_news),或者更好的是seq_along(cleaned_us_news)
  • 您应该在代码中提供数据,以便人们可以为您提供更好的答案。
  • @DanielAnderson 所说的加上school=0 应该不在循环中。

标签: r loops for-loop if-statement


【解决方案1】:

实施上述 cmets 中的建议。

school=0
for (i in 1:nrow(cleaned_us_news)){
if(Instructional.expenditure.per.student[i] > Out.of.state.tuition[i]){
school = school + 1}
}

【讨论】:

  • 由于某种原因,此代码未产生 400+ 行的预期输出。它只循环了 8 次。
  • 它还会产生错误:需要 TRUE/FALSE 的地方缺少值
  • 提供示例数据。它最有可能与数据相关。只需在需要的其他数据集上执行 dput((cleaned_us_news[1:20,])) 并使用 dput
  • 你会在og帖子中找到数据的图片
  • 图片不是很有帮助。最好使用dput 提供一个可重现的示例。这样,人们就可以真正使用您的数据,并确保他们给您的答案有效。
猜你喜欢
  • 2022-01-10
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
  • 2019-12-04
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多