2012-01-19 26 views
0

当我使用R中循环,例如的R - 保存完整数据集

for (k in 1:length(bcd)) { 
    print(window(abc,start = (as.Date(start[i,]),end = (as.Date(finish[i,])))) 
} 

结果将是完整的选择的数据。

但是,如果我想保存选定的数据,它只记住对应于最后一个循环计数器的数据。

for (k in 1:length(bcd)) { 
    A = ???(window(abc,start = (as.Date(start[i,]),end = (as.Date(finish[i,])))) 
} 

在“???”中使用的正确函数是什么? ?谢谢。

回答

1

列表是最普遍的类型。你可以为初始化实例“A”:

A <-list() 
for (k in 1:length(bcd)) { 
    A[[k]] <- window(abc, start = (as.Date(start[i,]), end = (as.Date(finish[i,])))) 
} 

的专业人员使用seq_along()代替1:length(.)

如果它们都是相同的数列,但不同数量的行的那么这可能会奏效:

do.call(rbind, A) # since "A" is a list and the natural second argument to do.call 
+0

对不起,它不起作用,消息说“要替换的项目数量不是替换长度的倍数”。 – 2012-01-19 01:04:36

+0

将'[k]'更改为'[[k]]',因为这是一个列表。 – 2012-01-19 01:17:20

+0

谢谢,它的作品。 – 2012-01-19 01:19:54