我正在使用R,并尝试通过将行号放入向量prac中,将我的prepareRunSwitch数据帧的“试验”列的值为负的行删除,然后将其用于提取恭维行新数据框。但是,prac向量始终返回空。下面是我的代码,不确定我缺少什么。欢迎任何帮助/建议,谢谢!
prac <- c()
for (i in 1:nrow(prepareRunSwitch)){
if(prepareRunSwitch[i, "trial"] > 0){
prac <- append(prac, i)
}
return(prac)
}
答案 0 :(得分:1)
我们可以不执行循环而使用which
来获取逻辑向量的行索引
which(prepareRunSwitch$trial > 0)
如果我们先提取列然后再索引,则下面的内容应该起作用
prac <- c()
for (i in 1:nrow(prepareRunSwitch)){
if(prepareRunSwitch$trial[i] > 0){
prac <- append(prac, i)
}
return(prac)
}
作为可重复的示例
prac <- c()
for(i in 1:nrow(mtcars)) if(mtcars$carb[i] == 4) prac <- append(prac, i)
prac
#[1] 1 2 7 10 11 15 16 17 24 29
请注意,最好将1:nrow
替换为seq_len(nrow(