R: Извлечение номеров строк из кадра данных в вектор на основе значения столбца - PullRequest
0 голосов
/ 14 декабря 2018

Я использую R и пытаюсь удалить строки с отрицательным значением для «пробного» столбца моего фрейма данных prepareRunSwitch, поместив номера строк в вектор prac, который я затем буду использовать для извлечения строк комплимента вновый фрейм данных.Тем не менее, вектор Prac всегда возвращается пустым.Ниже мой код, не уверен, что мне не хватает.Любая помощь / совет приветствуется, спасибо!

prac <- c()

for (i in 1:nrow(prepareRunSwitch)){
  if(prepareRunSwitch[i, "trial"] > 0){
    prac <- append(prac, i)
  }
  return(prac)
}

1 Ответ

0 голосов
/ 14 декабря 2018

Мы можем сделать это без цикла, чтобы получить индекс строки логического вектора с 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(

...