2012-11-27 62 views
0

我的數據是年數,並非所有的數據集都有從1990年到2010年的所有年份的數據,所以首先我要填補所有ID的缺失年份。然後,我想填充剩餘的字段,並在其中添加年份,併爲我想要預測的其他字段創建NA值。我怎麼能在R填寫丟失的數據,並在R中複製其他人

LAT  LONG Cluster_ID year 
13.5330 -15.4180 1   1990 
13.5330 -15.4180 1   1992 
13.5330 -15.4180 1   1995 
13.5330 -15.4180 1   2010 
13.5330 -15.4170 2   1995 
13.5330 -15.4170 2   1997 
13.5330 -15.4170 2    2005 
13.5340 -14.9350 3    2005 
13.5340 -14.9350 3    2006 
13.5340 -15.9170 4    2010 
13.3670 -14.6190 5    2006 
+0

怎麼做呢?在論壇中是新的。只需指導我將接受 – jonestats

+0

您單擊您要接受的答案旁邊的空白複選標記。 –

+0

我看到並接受它。你有沒有想過我如何解決上述問題?將感謝任何幫助 – jonestats

回答

1

只需用所有可能的組合,這樣創建一個額外的數據幀:

mycomb <- expand.grid(Cluster_ID = unique(mydat$Cluster_ID), 
      year = 1990:2010) 

有了一個你可以做一個合併:

merge(mydat,mycomb,all=TRUE) 

要獲得期望的結果。另見?expand.grid?merge


代碼進行測試:

zz <- textConnection('LAT  LONG Cluster_ID year 
13.5330 -15.4180 1   1990 
13.5330 -15.4180 1   1992 
13.5330 -15.4180 1   1995 
13.5330 -15.4180 1   2010 
13.5330 -15.4170 2   1995 
13.5330 -15.4170 2   1997 
13.5330 -15.4170 2    2005 
13.5340 -14.9350 3    2005 
13.5340 -14.9350 3    2006 
13.5340 -15.9170 4    2010 
13.3670 -14.6190 5    2006') 

mydat <- read.table(zz,header=TRUE) 
+0

謝謝Joris,讓我試試看看它是否有效。 – jonestats

+0

只是一個問題,我執行代碼達到了最高點。我發現它創造了一個所有年份的數組。我看到你已經使用了textconnection()函數,但我無法弄清楚爲什麼。如果我的數據有大約20個變量,我是否也這樣做? – jonestats

+0

@jonestats textConnection()僅用於讀取您向R提供的數據,以便測試代碼。您不必執行該代碼下的代碼,這適用於想要在某些數據上嘗試解決方案的人員。另請參閱'?textConnection' –