r - 我的数据框不会通过嵌套的 for 循环来维护其内容,该循环会附加新行
问题描述
我试图通过迭代嵌套的 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
在本例中为 )。这些行具有正确的值,但某些原因导致它要么不运行以前的实验,要么在重新启动内部循环时删除它们。任何帮助,将不胜感激 :)
解决方案
推荐阅读
- c++ - 从 txt 文件中读取 std::vector 的问题(只读取一个数字)
- c# - c# 无法转换 system.collections.generic.icollection
到 KMSEntities.PMRUnitTypes - python - GDAL 库,谁做什么
- maven - SpringBoot 和 GitLab CI 给出了 maven 万无一失的错误
- c++ - 增强 UE4 插件中的野兽集成问题?
- php - 我将如何运行 Amazon SQS 的队列?这是一个 cron 工作吗?
- c++ - 这个 C++ 中的数组输入代码有什么问题?
- excel - 在列中查找一个值,然后在同一行的其他位置更改一个值
- javascript - 火狐window.print() android
- excel - 如果列已经包含某个值,则自动递增