2016-04-16 7 views
0

私は、状態ごとに緯度、長い値を追加しようとしている状態のdfを持っているので、マップ上の各状態のパーセント値をプロットすることができます。私はどちらかと空私はマージを使用した場合のデータの損失

all=TRUE 

またはIを使用していない場合は、DF取得マージを使用すると、私の緯度のいずれかのデータが不足してもらう、私のデータ自体の長い値は、に応じて、私は、xまたはy

を作ります私のDFをロードし、各状態の中央

snames <- data.frame(region=tolower(state.name), long=state.center$x, lat=state.center$y) 
ための緯度、長い値と状態名を取得するには、列ヘッダー

fileURL <- c("https://drive.google.com/open?id=0B-jAX5hT2D3hNnVtLVhROENKRGs") 
suppressMessages(require(data.table)) 
ge.planted <- fread(fileURL, na.strings = "NA") 
colnames(ge.planted) <- c("region", "type", "crop", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015") 

コードを追加する

コード

私が使用してdfを2をマージする場合:

snames <- merge(ge.planted, snames, by="region") 

を私は

[1] region long lat type crop 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 
[17] 2011 2012 2013 2014 2015 

または私は

snames <- merge(ge.planted, snames, by="region", all=TRUE) 

を使用して、私は私の値が、無緯度を取得する場合取得、長い

region      type crop 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 
1: Alabama Insect-resistant (Bt) only Cotton - - - - - 10 10 10 18 13 11 18 17 12 
2: Alabama Herbicide-tolerant only Cotton - - - - - 28 25 25 15 18 7 4 11 4 
3: Alabama  Stacked gene varieties Cotton - - - - - 54 60 60 65 60 76 75 70 82 
4: Alabama   All GE varieties Cotton - - - - - 92 95 95 98 91 94 97 98 98 
5: Arkansas Herbicide-tolerant only Soybean 43 60 68 84 92 92 92 92 94 94 96 95 94 97 
6: Arkansas   All GE varieties Soybean 43 60 68 84 92 92 92 92 94 94 96 95 94 97 
    2014 2015 long lat 
1: 9 4 NA NA 
2: 6 3 NA NA 
3: 83 90 NA NA 
4: 98 97 NA NA 
5: 99 97 NA NA 
6: 99 97 NA NA 

とfina LLY

snames <- merge(snames, ge.planted, by="region", all=TRUE) 

と私は長い間、緯度得るが、最高からの値

 region long lat type crop 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 
1 alabama -87 33 <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA NA NA NA NA NA NA NA NA NA NA 
2  alaska -127 49 <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA NA NA NA NA NA NA NA NA NA NA 
3 arizona -112 34 <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA NA NA NA NA NA NA NA NA NA NA 
4 arkansas -92 35 <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA NA NA NA NA NA NA NA NA NA NA 
5 california -120 37 <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA NA NA NA NA NA NA NA NA NA NA 
6 colorado -106 39 <NA> <NA> <NA> <NA> <NA> <NA> <NA> NA NA NA NA NA NA NA NA NA NA NA 

は、私はそれがへに「Y」の値を追加している「領域」に基づいて代わりにファイルをマージするの言うことはできませんデータフレームの終わり。

+0

私は今年のdfアップの集まりから、 –

+0

のポストをそのまま再現できないよう植えました。 dput()を使用して、あなたの投稿にデータセット(または問題を再現するのに十分なサブセット)を含めることができます。 – MLavoie

+0

'fread(url、na.strings =" NA ")のエラー:ヘッダー行の書式をテストした後に正しく配置されません。 ch = 'h''です。 ( 'fileURL'を' url'で置き換えた後)。 'packageVersion(" data.table ")is '1.9.6' – lukeA

答えて

0

問題は、tolower()を使用して、1つのフレームのリージョン名が異なる(ge.plantedには大文字と小文字がありません。snamesはありません)ということです。したがって、マージはリージョン名を同等のものとして認識しません。 tolower()呼び出しを削除すると、それはうまくいくはずです。