Я пытаюсь добавить строки во фрейм данных, перебирая вложенный цикл 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 *