0

私は R で Limesurvey アンケートからのいくつかのデータを分析しています。調査の質問の 1 つは、人々に出身国を尋ね、国のリストを含むドロップダウンを使用します。Limesurvey 回答コードとして 3 文字の ISO 国コード、ラベルとして国名を使用して、このためのラベルセットを作成しました。

各国の ISO コードを含むラベルセット

Limesurvey データを R にエクスポートすると、コードとラベルの両方が R 構文ファイルに保存されます。コードは因子の「レベル」として保存され、ラベルはもちろんラベルとして使用されます (わかりやすくするために省略されています)。

data[, 7] <- as.character(data[, 7])
attributes(data)$variable.labels[7] <- "Which country are you from?"
data[, 7] <- factor(data[, 7], levels=c("AFG","ALA","ALB", ..., "ZMB","ZWE"),labels=c("Afghanistan","Åland Islands","Albania", ..., "Zambia","Zimbabwe"))
names(data)[7] <- "Q3_Nationality"

しかし、R でこの 3 文字の ISO コードにアクセスする方法がわかりません。ISO コードを取得できれば素晴らしいので、それを rworldmapjoinCountryData2Map()関数にフィードして、データをマップにプロットできます。(国名をその関数に渡すこともできますが、エラーが発生しやすくなります。)

変数を調べると、次のようになります。

> data$Q3_Nationality
  [1] Guyana
  249 Levels: Afghanistan Åland Islands Albania Algeria ... Zimbabwe

同様に、levels()私に与えます:

levels(data$Q3_Nationality)
  [1] "Afghanistan"                                 
  [2] "Åland Islands"                               
  [3] "Albania"                                     
  [4] "Algeria"                                     
  [5] "American Samoa" 

「AFG」、「ALA」、「ALB」ISO 応答コードの兆候はありません。

それを文字に変換しようとすると、完全なラベルが再び表示されます。

as.character(levels(data$Q3_Nationality))
  [1] "Afghanistan"                                 
  [2] "Åland Islands"                               
  [3] "Albania"                                     
  [4] "Algeria"                                     
  [5] "American Samoa" 

アクセス方法を教えていただけると助かります!

4

1 に答える 1

0

R-Syntax-file を編集し、レベルをラベルとして設定するだけの汚い解決策を提案します。ただし、後で印刷またはプロットするために国の完全な名前を使用する場合は、変換する必要があります。コード構文ファイルをコードで使用できます。おそらく、印刷用のコピーで使用できます。

于 2015-08-26T18:08:23.787 に答える