对于read.csv循环太快

Wah*_*aht 2 for-loop r read.csv

我写了一个循环来读取csv文件并对其进行rbind.

vec1 = c(0,1,3,5,9)
vec2 = c("mom", "dad")
c = data.frame()

for(i in length(vec1))
{
  for (j in length(vec2))
  {
    dir = paste("../data/year ", vec1[i], "/ff_", vec2[j], "_cb", vec1[i], ".csv", sep="")
    a = read.csv(dir)
    Sys.sleep(3)
    c = rbind(c,a)

  }

}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行它时,只有最后一次迭代的结果存在.(即a具有上次迭代的值,并且与之c相同a).

我虽然这是因为循环太快,它不会等到read.csv完成后再转到下一个.因此,我在那里放了一个sys.sleep(3).

但是,同样的问题仍然存在.而且,我能够设置i,j手动完成这个任务,所以语法应该是正确的,但我不知道是什么问题.

谢谢!

Dav*_*e2e 7

你的循环不正确. for(i in length(vec1))只会执行一次迭代.正确的格式是: for(i in 1:length(vec1)) 例如试试这个:

vec1 = c(0,1,3,5,9)
vec2 = c("mom", "dad")
for(i in 1:length(vec1))
{
  for (j in 1:length(vec2))
  {
    print(paste(i, j))   
  }  
}
Run Code Online (Sandbox Code Playgroud)

然后用你的陈述重复这个例子.