Мой фрейм данных не будет поддерживать свое содержимое, повторяя через вложенный цикл for, который добавляет новые строки, какие-нибудь идеи? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь добавить строки во фрейм данных, перебирая вложенный цикл for, один цикл перебирает вектор, чтобы создать другой вектор, а другой цикл перебирает этот второй вектор для извлечения значений.(Не очень хорошее объяснение, но я не уверен, как еще это сформулировать, и код должен показывать, что происходит).Тем не менее, фрейм данных сбрасывается каждый раз, когда он выполняет итерацию по внешнему циклу, хотя я не могу найти ничего в том, что может вызвать его.

Я попытался вернуть фрейм данных в разных точках (в конце каждого цикла) и разными методами добавления строки (rbind, отдельные элементы за раз), но безуспешно с обеих сторон.

exp_list is a vector of csv filenames (strings), 
exp_fixmeans creates a vector of numeric values of length fixnum (20, in this case), 
the nested loop goes through each element of the vector and appends the data frame with appropriate values  


#initialization of the data frame
dat <- data.frame(matrix(ncol = 3, nrow = 0))
x <- c("pupil", "fixnum", "exp")
colnames(dat) <- x

#for loop iterating through experiments
n <- length(exp_list)

for(i in n){

  #creates a vector of average pupil size at each fix of the current 
  #experiment
  pupil <- exp_fixmeans(exp_list[i], fixnum)

  #iterates through each fixation, appending appropriate values to dat
  for(j in 1:fixnum){
    newrow <- c(as.numeric(pupil[j]), as.numeric(j), exp_list[i])
    dat[nrow(dat)+1,] <- newrow   
  }
}

Если я передам exp_list ("exp1a", "exp1b", "exp7") через цикл for, я надеюсь вернуть фрейм данных, содержащий 60 строк, по 20 для каждой фиксации каждогоэксперимент.Однако, что я получаю - это фрейм данных с 20 строками, только последнего эксперимента в списке (в данном случае exp7).Строки имеют правильные значения, но что-то заставляет их либо не запускать предыдущие эксперименты, либо удалять их при перезапуске внутреннего цикла.Любая помощь будет оценена :) 1006 *

...