从循环使用R中提取数据

时间:2015-01-11 11:35:08

标签: r loops for-loop

当我在循环中使用命令打印时,我有6140个原始文件:

for (i in 1:614 ){
print(paste(urls[i], 0:10)))
}

但我不知道如何将所有值提取到数据框 当我创建变量时:

for (i in 1:614 ){
 a<- as.data.frame(paste(urls[i], 1:10))
  }

我只有10个obj wit我的链接。

一般情况下,我想要6140 obj和我的数据

P.S.sryry for my english :)

1 个答案:

答案 0 :(得分:1)

我想说最简单的方法就是使用foreach package。它提供了一个.combine参数,使得每个循环的结果非常简单。

# Create a reproducible example of urls
urls <- rep_len (letters, 614)

# Install and load `foreach`
install.packages ("foreach")
library (foreach)

# Create the loop and indicate that you want to join the results by row
a <- foreach (i=1:614, .combine = rbind) %do% {
  as.data.frame (paste(urls[i], 0:10))
}

就是这样。您可以将结果组合成多种类(向量,数据框,列表等)和方式(按行,按列等)。学习使用foreach不仅有利于解决这个问题,而且如果以后需要进行某种并行计算,它也会非常有用。

如果你想坚持传统的循环,其中一种方法是:

a <- data.frame ()
for (i in 1:614){
  a <- rbind (a, as.data.frame (paste(urls[i], 0:10)))
}

快乐的编码!