2017-10-03 12 views
0

を茎と葉のプロット問題:R:私は、次のベクトル持っ

x <- c(54.11, 58.09, 60.82, 86.59, 89.92, 91.61, 
     95.03, 95.03, 96.77, 98.52, 100.29, 102.07, 
     102.07, 107.51, 113.10, 130.70, 130.70, 138.93, 
     147.41, 149.57, 153.94, 158.37, 165.13, 201.06, 
     208.67, 235.06, 240.53, 251.65,254.47, 254.47, 333.29) 

を私はRで、以下の茎と葉のプロットを取得したい:

Stem Leaf 
5 4 8 
6 0 
8 6 9 
9 1 5 5 6 8 
10 0 2 2 7 
11 3 
13 0 0 8 
14 7 9 
15 3 8 
16 5 
20 1 8 
23 5 
24 0 
25 1 4 4 
33 3 

しかし、私はステムをしようとすると、

> stem(x) 

    The decimal point is 2 digit(s) to the right of the | 

    0 | 566999 
    1 | 000000011334 
    1 | 55567 
    2 | 0144 
    2 | 555 
    3 | 3 

> stem(x, scale = 2) 

    The decimal point is 1 digit(s) to the right of the | 

    4 | 48 
    6 | 1 
    8 | 7025579 
    10 | 02283 
    12 | 119 
    14 | 7048 
    16 | 5 
    18 | 
    20 | 19 
    22 | 5 
    24 | 1244 
    26 | 
    28 | 
    30 | 
    32 | 3 

質問::R()関数は、私はfolliwingを得る私は、ステムに引数をしないのです()FUNCTイオン?そうでない場合、別の解決策がありますか?私はあなたが何をしたいと考えてい

答えて

2

は少し非標準である:幹葉は、その左等間隔番号/桁に持っている必要があり、そしてあなたは、不規則な間隔を置いたために求めています。私は54と58が40年代に分類されているというあなたの不満を理解していますが、茎と葉のグラフは実際には水平ヒストグラムのテキスト表現であり、側面の数字はしばしば始まり/終わる既知のデータの外側にある。など40-59、60-79、

あなたはおそらく既にこれを試してscale(x, scale=2)左規模な数字を考える、しかし

stem(x, scale=3) 
# The decimal point is 1 digit(s) to the right of the | 
# 5 | 48 
# 6 | 1 
# 7 | 
# 8 | 7 
# 9 | 025579 
# 10 | 0228 
# 11 | 3 
# 12 | 
# 13 | 119 
# 14 | 7 
# 15 | 048 
# 16 | 5 
# 17 | 
# 18 | 
# 19 | 
# 20 | 19 
# 21 | 
# 22 | 
# 23 | 5 
# 24 | 1 
# 25 | 244 
# 26 | 
# 27 | 
# 28 | 
# 29 | 
# 30 | 
# 31 | 
# 32 | 
# 33 | 3 

は、これは良いスタートであり、その中に「適切」でありますビンは同じ大きさです。

stemのデフォルトがコンソールに出力されるため、統計的に重要で関連性の高い情報を含む空の行を削除する必要がある場合は、コンソール出力をキャプチャする必要があります( rmarkdownドキュメントに問題があるかもしれません)、空の行をフィルターに掛けて、コンソールに戻してください。cat

cat(Filter(function(s) grepl("decimal|\\|.*[0-9]", s), 
      capture.output(stem(x, scale=3))), 
    sep="\n") 
# The decimal point is 1 digit(s) to the right of the | 
# 5 | 48 
# 6 | 1 
# 8 | 7 
# 9 | 025579 
# 10 | 0228 
# 11 | 3 
# 13 | 119 
# 14 | 7 
# 15 | 048 
# 16 | 5 
# 20 | 19 
# 23 | 5 
# 24 | 1 
# 25 | 244 
# 33 | 3 

(マイgrepl正規表現の可能性が高い「パイプがある場合、それは1つの以上の数字が続かなければならない」と同類のものを扱うように改善されることが、私は、これは今で十分だと思います。)

6 | 0が必要ですが、60.82が61に丸められているという点で不平等な点があります(「1」と同じです)。 60.82を6 | 0にしたい場合は、stem(trunc(x), scale=3)で切り捨ててください。それは正確ではありませんが、あなたのサンプル出力が手で詰まっているためです。

関連する問題