【问题标题】:Attempting a for loop in R在 R 中尝试 for 循环
【发布时间】:2019-11-23 20:58:42
【问题描述】:
x <- 1:19
count <- 0
for (i in x) {
  if atranspose * T5_5_FBEETLES[i, 3:6]>cutoff
  count=count+1
}
print(count)

你好,我想在 R 中做一个 for 循环。在这个 for 循环中,我将一个 1x4 矩阵(在本例中为转置)和表的第三列到第六列相乘(在本例中表为 T5_5_FBEETLES ) 逐行(因此 x 中的 i,因此通过前 19 行),我将其与变量名称为 cutoff 的数字进行比较。如果乘法以大于截止数的结果结束,我希望 count 增加 1。我通过手动操作知道最终计数应该是 19,但无论出于何种原因,我的 for 循环为我的 count 变量返回 1我不断收到这两个错误:

出现意外符号: “对于(我在 x){ 如果转置”

“}”中出现意外的“}”

谁能向我解释为什么会发生这两个错误,以及如何修复我的 for 循环以便它可以返回正确的计数?

【问题讨论】:

  • if ... `if (atranspose * T5_5_FBEETLES[i, 3:6]>cutoff) 后面需要括号

标签: r loops for-loop


【解决方案1】:

你得到一个错误,因为你的 if 语句越界,因此需要一些花括号:

x <- 1:19
count <- 0
for (i in x) {
  if (atranspose * T5_5_FBEETLES[i, 3:6]>cutoff) {
  count=count+1
}
}
print(count)

这会给你另一个错误,因为 if 语句的逻辑检查将返回一个向量,所以它需要被包装在一个 any 中:

x <- 1:19
count <- 0
for (i in x) {
  if (any(atranspose * T5_5_FBEETLES[i, 3:6]>cutoff)) {
  count=count+1
}
}
print(count)

【讨论】:

  • 感谢您的帮助,我正在得到我正在寻找的输出!
猜你喜欢
  • 2021-05-23
  • 2014-10-03
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
相关资源
最近更新 更多