2017-08-16 7 views
0

私のコードの実行に時間がかかるという問題に直面しています。私は、以下の原理folllows約23000の列と600行のデータフレームがあります。日付形式を使用してデータフレームに条件を書き込む方法

date <- c(30032015,30042015,31052015,30062015,31072015,31082015,30092015) 
AAPL <- c(10,NA,NA,10,NA,NA,20) 
MSFT <- c(10,NA,NA,30,NA,NA,25) 
sales <- data.frame (date,AAPL,MSFT) 
sales$date <- strptime (sales$date, format="%d%m%Y") 

をそして私は4月の値をしたいし、7月と8月に3月と同じ相対値に等しくなるようにあり6月と比べて

は私がやっていることは、この

sales [is.na(sales)] <- 0 

for (i in 1:6){ 
for (j in 2:3){ 
sales[i,j] <- ifelse(sales[i,j]>0,sales[i,j],ifelse(sales[i-1,j]>0,sales[i- 
1,j],ifelse(sales[i-2,j]>0,sales[i-2,j],NA))) 
}} 

しかしビッグデータフレームは、時間の多くを取っているためです。 4月と5月の値が3月の値と等しくなっているとはどういう意味ですか?

はおそらくzooパッケージからna.locf()機能が欲しい、事前に

答えて

2

、ありがとうございました。それはna値に取って代わる最後の観測値を運ぶ。

require(zoo) 
sales[,2:3] <- apply(sales[,2:3],2,na.locf) 
関連する問題