2011-03-14 4 views
0

が、断面(パネル)の時系列データにNAの値を入力するための機能をna.locf使用する方法です。最終観察パネルに担持フォワード(na.locf)(断面)時系列

私は次のように同様の設定、データの年と同様にパネルデータセットを設定している:

library(zoo) #actual [r] code and data! 
library(plm) 
data(Produc) 
a<-data.frame(Produc) 
b<-subset(a,state=="WYOMING"|state=="WISCONSIN",select = state:hwy) #limit to an easy subset) 

データは抑制(政府のデータ機関が発表していないつまり欠損値)を持って、私がしたいです次の観測値を引き出してNA値を記入するだけです。 na.locf機能を使用して

b[[2,4]]<-NA 
b[[17,4]]<-NA 
b[[18,3]]<-NA 
c<-na.locf(b,na.rm=FALSE,fromLast=FALSE) 

はNAのを記入しますが、何も隣町の最初の年のdata.Iは私がする必要があることを考え始めていて、市内の昨年を埋めるために、誤ってデータを引っ張ってから、それを停止しませんデータフレームを個々の都市フレームに分割します。

+0

は、あなたは「年々抑制」などで何を意味するかを示す小さな例のデータ・セットを作成することはできますか?それはあなたの質問に答えるのを助けるでしょう。 –

+0

-1曖昧/不明。データは使用できないか、または十分に説明できません。必要な出力は表示されません。 –

+0

R. –

答えて

0

あなたが疑われるとして、最も簡単な方法は、いずれかを持っている(例えばsplitを使用して)市または年の寸法のいずれかに沿って、別のデータフレームにデータフレームを分割し、na.locfを使用して、unsplitになります。あなたは市がrownamesであることと、あなたのデータを構造化し、年COLNAMES(またはその逆)、および各データのための行列のリストを持っている場合

またそれが簡単になります。この場合、適用を使用して、適切なディメンションを順方向に塗りつぶします。

+1

ああ!最後に_groked_少しddply! 'plyr < - ddply(b、c( "state")、関数(df)na.locf(df、na.rm = FALSE、framLast = TRUE)' – AzadA

2

ビルAzadAさんのコメントに

ddplyは、データフレーム内の特定のサブセットを識別し、あなたが選択した変数(S)のレベルによってそのサブセット内の作品の全てに所望の機能を適用します。

ライブラリ(plyr) new.data < -a $(あなたがに関数を適用したいvarsの、及びVARSは秩序とサブセットのために必要) 形式:ddply(data.frame、VAR(s)はサブセットします、機能、さらに機能コマンド)

new.data <は - ddply(、#applyすべてのベクトルのために、市がna.locf $市、na.locfは)

をvarsの$ B < - new.data $ bの番号詳細情報については、旧

のための新たな情報に交換する変数ごとにこの操作を行う:http://cran.r-project.org/web/packages/plyr/plyr.pdf