为什么在R中使用循环中的两个变量(下面给出的代码)?

时间:2017-04-20 17:09:01

标签: r loops

我正在研究R中的DIGRE模型代码,并且有一个循环如下:

idx <- 1
for (i in 1:length(drugName)) {
if (drugName[i] != "Neg_control") {
  cat(idx, ". ", drugName[i], "\n", sep = "")
  idx <- idx + 1
}

我的问题是为循环和计数器使用单独的变量(i和idx)的特殊原因。如果只有一个变量,这个循环不会正常工作。因此我对R很陌生。因此很好奇。

2 个答案:

答案 0 :(得分:2)

如果idx不是drugName,变量"Neg_control"只会递增。所以i索引drugName的所有观察值,而idx计算'出现'。我想根据数据的样子以及函数的目标,可以不使用循环来完成。

答案 1 :(得分:1)

这个怎么样?

controlTF = drugName != "Neg_control"

idx <- sum(controlTF)

paste0(1:idx, ". ", drugName[controlTF])