-1
我正在使用for-loop在我的數據的特定子集上執行操作。在for循環的每次迭代結束時,我擁有填充我的數據框的一行所需的所有值。逐步填充數據框
到目前爲止,我試過
df=NULL
for(...){
//stuff to calculate
newline=c(allthethingscalculated)
df=rbind(df,newline)
}
這會導致無法使用accessable「$」數據框的內容,因爲該行是那麼原子向量。
我還嘗試將每次迭代結束時得到的值追加到已存在的矢量中,並且for循環結束時,使用這些矢量創建數據框但將值附加到各自的矢量上不起作用,這些值沒有被添加。
x<-data.frame(a,b,c,d,...)
對此的任何想法?
因爲我超過在我的數據標識循環迭代,我意識到我可以做這樣的事情:
uids=unique(data$id)
filler=c(1:length(uids))
df=data.frame(uids,filler,filler,filler,filler,filler,filler,filler,filler,filler)
for(i in uids){
...
df[i,]<-newline
}
我以前填料創建具有正確的列數的數據幀和行,所以我沒有得到一個錯誤,如'替換長度爲9,替換長度爲1'
有沒有更好的方法來做到這一點?使用這種方法,我仍然需要刪除相應的行中的值填充?
是否每次迭代後'newline'的長度都一樣? – 2013-03-19 07:47:12
如果事先知道迭代次數,爲什麼不用NAs填充data.frame,並用計算來替換每一行?像'df < - as.data.frame(矩陣(NA,i * ncols,ncol = ncols))' – 2013-03-19 07:47:32
也許在開始時你必須說:'df < - data.frame()'。無論如何,沒有例子,我覺得這個問題有點不清楚。 – Arun 2013-03-19 07:51:26