2017-12-26 5 views
1

に作成します。cutのコードが使用されていますが、値が指定されていますが、これはサンプルコードであり、実際にはほとんどコード化されていません。量の変数の範囲を特定することは非常に困難です。使用可能な値の範囲をR

だから私の質問は次のとおりです。

  1. それはグループがそれを回避する方法指数関数的に表示されているコード以下の場合はdata.frame
  2. の金額のために利用可能な値の範囲を作成することが可能ですscipen=999

オプションを使用した後

id = seq(1:30) 
amount = c(30185, 33894, 33642, 29439, 27879 ,52347, 4101, 5425, 
      6541, 54589, 5214, 1000, 45000, 64125, 100021, 120000, 
      657412, 15224,4578, 3639, 10000, 48781, 64484, 5020, 
      15001, 105050, 14521, 59822, 42871, 32542) 

df = data.frame(id, amount) 
df$group = cut(df$amount,c(10000, 20000, 30000, 40000, 50000, 60000, 70000)) 
(= 999 scipen) DF用

出力

enter image description here

答えて

1

あなたは機能cutが入力として単一の整数Nを設ける代わりに、手動でカットポイントを指定することによって、カット点を選択する作業を任せることができます。この関数は自動的にnの等長間隔を作成します。

間隔ラベルに使用する桁数を調整するには、オプションの入力dig.labをラベルの最大桁数に設定します。

df$group = cut(df$amount,breaks=7, dig.lab=6) 

結果:

> df 
    id amount    group 
1 1 30185 (343.588,94773.1] 
2 2 33894 (343.588,94773.1] 
3 3 33642 (343.588,94773.1] 
4 4 29439 (343.588,94773.1] 
5 5 27879 (343.588,94773.1] 
6 6 52347 (343.588,94773.1] 
7 7 4101 (343.588,94773.1] 
8 8 5425 (343.588,94773.1] 
9 9 6541 (343.588,94773.1] 
10 10 54589 (343.588,94773.1] 
11 11 5214 (343.588,94773.1] 
... 

編集seq機能を使用してカットポイントを設定し、より多くの定期的なラベルを持っているあなたの例では

は、次のように使用することができます。たとえば、

> df$group = cut(df$amount,breaks=seq(0,700000,25000), dig.lab=6) 
> head(df) 
    id amount   group 
1 1 30185 (25000,50000] 
2 2 33894 (25000,50000] 
3 3 33642 (25000,50000] 
4 4 29439 (25000,50000] 
5 5 27879 (25000,50000] 
6 6 52347 (50000,75000] 

は、互いに25000の距離にカットポイントを作成します。ここでは、範囲の最小値と最大値を指定する必要があることに注意してください(ここでは0と700000を設定します)。

+0

は、このサンプルのように作ることができます - >' 10000、25000、50000、100000、500000、1000000'? – Sharath

+0

はい、私の編集を参照してください –

+0

ありがとう作品... – Sharath

0

cut(x, breaks)、二つ以上のユニークなカットポイントの数値ベクトル、またはxはその中に間隔の数を与える単一の数(2以上)のいずれかを破ります切断される。

dig.labを指数関数で表示しないように設定できます。

df$group = cut(df$amount,c(10000, 20000, 30000, 40000, 50000, 60000, 70000), dig.lab = 10) 
+0

これは自動生成された '10000,20000,30000,40000,50000,60000,70000'です。 '10000、25000、50000、100000、500000、1000000'など... – Sharath

関連する問題