2012-10-17 12 views
5

私は自分のデータを準備していましたが、何とか私のデータセットをマージしてからデータが少なくなりました。データをマージして大量のデータを失う

私は合併前のパッケージ郵便番号tel1は、ジップコードを含む私のデータである)

merge <- merge(zipcode,tel1,by.x=c('zip'),by.y=c('zip_code')) 

をダウンロードした後、私は次のコードを使用してきた私のデータでは、緯度と経度を持っていないので、私は195956回の観測をしましたが、合併後は180090にまで減少しましたが、なぜそれはわかりません。 zipzip_codeに等しかったと私は私のフォルダTEL1にデータセット郵便番号からの情報を追加しましたところ、私の意見では

は、私はちょうど私がNA含む行を削除したいその後

それらをマージされ、マージができなかったので、任意の数字などを定義します。私はこのコードを使用しました

final <- result[complete.cases(result),] 

私の観察数は私が信じられない51006になりました。私のデータにはそれほど多くの不一致はありません。

使用する必要がある他のコードはありますか?

その後私は、コード

last <- with(final,final[order(state,latitude,longitude),]) 

との重複を削除しようとしてきたが、観測数は(51006)一致しました。

データがマージされた後にExcelのファイルにデータを追加する方法が間違っていたか、手動でチェックすることができましたか? ありがとう

+0

plyrパッケージの 'join'を使ってみてください。これは、mergeよりもはるかに直感的です。 –

+2

'merge'の' all'引数を見ることもできます。 'merge(zipcode、tel1、by.x = 'zip'、by.y = 'zip_code'、all.y = TRUE)' – Justin

+0

@Justinに感謝します。結果[complete.cases(result)] を削除して51006になるまで解決しますか? – user1741021

答えて

7

mergeにはall引数を使用できます。

merge(zipcode, tel1, by.x='zip', by.y='zip_code', all.y=TRUE) 

しかし、試合は郵便番号データで発見されていない行について、NAのがあるでしょう。したがって、もし、その後na.rmまたはその効果への何かが、あなたが同じ「データ損失」

チェックして羽目になる場合は、マージ後の緯度と長い列でのNAがある行の郵便番号:

tel1[is.na(tel1$latitude) | is.na(tel1$longitude),] 

私の推測では、それらは有効な郵便番号ではないか、あなたが持っている郵便番号のリストは完全ではありません。

+0

私は郵便番号が大丈夫だと私のデータはちょうど多くのNAがそこに情報がないために別の列で構成されていると思います。そのため、経度と緯度にNAがある行を削除するだけです。私がコードを最後に試してみると、結果が得られる前に新しいデータセットが得られない – user1741021

+0

感謝しています。リストを削除しました。 Rに入力する前にExcelファイルの – user1741021

関連する問題