我正在研究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很陌生。因此很好奇。
答案 0 :(得分:2)
如果idx
不是drugName
,变量"Neg_control"
只会递增。所以i
索引drugName
的所有观察值,而idx计算'出现'。我想根据数据的样子以及函数的目标,可以不使用循环来完成。
答案 1 :(得分:1)
这个怎么样?
controlTF = drugName != "Neg_control"
idx <- sum(controlTF)
paste0(1:idx, ". ", drugName[controlTF])