【问题标题】:Error: attempt to use zero-length variable name with For Loop错误:尝试在 For 循环中使用零长度变量名
【发布时间】:2019-11-04 15:50:38
【问题描述】:

我正在尝试创建此循环,但我不断收到“错误:尝试使用零长度变量名”,并且不确定我哪里出错或如何修复此错误。 TIA :)

提示:现在让我们编写一个 for 循环来总结电影在“后期制作”中的运行时间。 for 循环中的函数将检查电影是否处于后期制作中,如果是,它将将该电影的运行时间添加到电影运行时间的总运行时间中。

sum= 0
   for (row in 1:nrow(movies)) {
   if (row$status == "Post Production") {
   sum <- sum + row$runtime
      }
      }

【问题讨论】:

  • row 是一个整数,它不能有status 元素。也许你想要movies$status[row]。尝试使用 sum(movies$runtime[movies$status == "Post Production"]) 向量化您的代码

标签: r for-loop


【解决方案1】:

row 是一个整数,其值介于 1 和数据帧电影中的行数之间(因为您将其定义为在 '1:nrow(movies)' 中取值)。 因此 row$status 等价于写 1$status。 我猜你想做的是:

sum= 0
   for (row in 1:nrow(movies)) {
     if (movies$status[row] == "Post Production") {
       sum <- sum + row$runtime
     }
   }

这里 movies$status[row] 将依次访问“status”列的第一个、第二个、第三个...元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多