我正在尋找一種有效的方式把這樣的數據幀:試圖增加的功能效率,其將一個數據幀劃分成,使用R
1 45
2 49
5 25
6 24
9 32
11 39
成這樣一個數據幀:
1 45
2 49
3 49
4 49
5 25
6 24
7 24
8 24
9 32
10 32
11 39
因此,這基本上是在行中添加左列中序列中的缺失值並使用右列中的最後一個值。我試圖爲1,000,000行的數據框做到這一點,我的功能非常慢。我認爲必須有一個更快的方法。
我做的是首先把它變成一個data.frame我打電話w
方式:
1 45
2 49
3 0
4 0
5 25
6 24
7 0
8 0
9 32
10 0
11 39
這一步是相當快的,而不是一個問題,但後來我用:
for (i in 1:nrow(w)) {
if(w[i,2]==0) {w[i,2]<-w[i-1,2]}
}
大部分時間都花在'< - '上,但我嘗試了很多不同的方式,這是我能想到的最快速度。當我做20,000行時很快,但當我嘗試1,000,000行時,大約需要30分鐘。
有沒有人有任何想法?
快速qn:第1列的最大值是多少? – chinsoon12
最大值將根據我正在使用的數據集而變化。 – AndrewK