

Rを使って、ヒストグラムを描きたいです。  
対象とする変数は、数値の大小に意味がある順序変数ではなく、「名義変数」に分類される業種コード(ex.製造業：01,金融：19,食品:38など)です。

最終的に業種コードごとに度数が表示される図にしたいのですが、現状としてx軸が順序変数としてみなされているため、業種コードのなかでとんでいる(もともと存在しない)番号が数値として残ってしまう状態です。

名義変数のヒストグラムを描く際の、オプションの指定の仕方がわからないため、教えていただきたいです。


CC BY-SA 4.0
2022-01-03T04:14:12.677
85459
2022-01-04T01:25:11.413
48973
question
r
R ヒストグラム　x軸が名義変数の場合の作図方法を知りたいです。


ヒストグラムで描きたい理由がよくわかりませんが、普通の棒グラフではだめなのですか？

[code]

    df <- data.frame(code=c("01", "01", "01", "19", "38", "38"))
    qplot(df$code, geom="bar", xlab = "業種コード")
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/xs4G4.png)](https://i.stack.imgur.com/xs4G4.png)


CC BY-SA 4.0
2022-01-03T06:08:21.903
85460
2022-01-03T06:08:21.903
43005
85459
answer


[業種コード表(日本標準産業分類)](https://www.pref.mie.lg.jp/common/content/000151581.pdf)
から適当に業種を拾ってきてテスト用のデータを作成します。

[code]

    df <- data.frame(
      "業種" = c(
        "銀行業", "飲食料品小売業", "電気業", "不動産取引業",
        "情報サービス業", "鉄道業", "水道業", "食料品製造業"
      ),
      "業種コード" = c(
        "62", "58", "33", "68", "39", "42", "36", "09"
      )
    )
    
    # df["業種コード"] からサンプリング
    data <- df[sample(1:nrow(df), size=200, replace=T), "業種コード"]
    
    print(length(data))
    # [1] 200
    
    print(data[1:20])
    #  [1] "33" "39" "36" "33" "39" "36" "36" "68" "36" "58" "68" "09" "33" "09" "58"
    # [16] "58" "39" "62" "58" "33"
    
[/code]

`factor()` でデータを categorize します。

[code]

    data <- factor(data, df[,"業種コード"])
    
    plot(data, ylim=c(0, 35), xaxt="n")
    text((1:(length(levels(data))))*1.2, par("usr")[3]-0.8,
         labels=df[,"業種"], srt=45, pos=2, xpd=T)
    
[/code]

[![histogram](https://i.stack.imgur.com/j0tB0.png)](https://i.stack.imgur.com/j0tB0.png)


CC BY-SA 4.0
2022-01-03T14:23:00.143
85465
2022-01-04T01:25:11.413
2022-01-04T01:25:11.413
47127
47127
85459
answer