2012-01-19 43 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