3

R に国の ISO コードを含むデータ フレームがあります。ナミビアの ISO コードはたまたま「NA」です。R は、このテキスト 'NA' を N/A として扱います。

たとえば、以下のコードはナミビアの行を表示します。

test <- subset(country.info,is.na(country.info$iso.code))

最初は要因の問題かもしれないと思ったので、iso コード列が文字であることを確認しました。しかし、これは役に立ちませんでした。

これはどのように解決できますか?

4

2 に答える 2

6

これはおそらく、データの読み取り方法に関連しています。それが文字だからといって、あなた"NA"がではないという意味ではありませんNA。例:

z <- c("NA",NA,"US")
class(z)
#[1] "character"

dput()これは、お客様のデータ (の一部)を当社に提供することで確認できます。

データを読み込むときは、na.strings = "NA"(たとえば、 in read.csv) を別のものに変更してみて、それが機能するかどうかを確認してください。

たとえば、次の場合na.strings = "":

read.table(text="code country
NA  Namibia
GR  Germany
FR  France", stringsAsFactors=FALSE, header=TRUE, na.strings="")
#   code country
# 1   NA Namibia
# 2   GR Germany
# 3   FR  France

""を使用した結果、他の変更が発生しないことを確認してください。それ以外の場合は、「z_z_z」などのファイルには絶対に出現しない文字列を使用できますtext=... をファイル名に置き換えることができます。

于 2013-08-01T09:35:58.890 に答える
0

Thomas の解決策がうまくいかない場合は、いつでもcountrycodeパッケージを使用して国コードを問題の少ないものに変更できます。たとえば、ISO2文字からISO3文字へのあなたの場合。

country.info$iso.code<-countrycode(country.info$iso.code,"iso2c","iso3c", warn=TRUE)

iso2c問題が発生した場合はcountry.names、コンゴ共和国とコンゴ民主共和国が混乱しないことを願って使用します。

于 2013-08-01T15:59:46.567 に答える