我正在尝试通过嵌套的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
}
}
如果我通过for循环传递exp_list(“ exp1a”,“ exp1b”,“ exp7”),希望返回一个包含60行的数据帧,每个实验的每次固定都包含20行。但是,我得到的是一个具有20行的数据帧,只有列表中的最后一个实验(在这种情况下为exp7)。这些行具有正确的值,但是某种原因导致该行要么不运行先前的实验,要么在重新启动内部循环时将其删除。任何帮助将不胜感激:)