0

私は最近 R を使い始めました。以下に示すように、2 つの列と 100000 行で構成されるデータセットがあります。

       Y    TOTA
1      1    403500.000
2      1    188334.000
3      0    812387.000
4      0    163626.000
5      1    49527.000
6      1    48661.000
7      0    36712.000
8      1    31745.000
9      1    23342.000
10     0    46835.000
...... .    .........
100000 0    10.982

変数 Y は 0 または 1 の 2 つの値のみを持つことができますが、変数 TOTA はさまざまな値を持つことができます。関数の概要から、次の結果が得られます。

          Y               TOTA         
  Min.   :0.0000   Min.   :       0  
  1st Qu.:0.0000   1st Qu.:     939  
  Median :1.0000   Median :    3918  
  Mean   :0.5113   Mean   :   40245  
  3rd Qu.:1.0000   3rd Qu.:   11028  
  Max.   :1.0000   Max.   :18938000  
                   NA's   :261       

標的:

10行3列の表を作りたいと思っています。各行はデータセットの 10 分の 1 を表し、最後の行は NA を示しています。ここで、データセットを見てテーブルにデータを入力したいと思います。データセットの最初の列が1の場合 、作成されたテーブルに +1 を追加します。この値は、列の 1 つと列 "Number Active Companies" の値の範囲と一致します。最初の値が0の場合、値が表の値の範囲と一致するそれぞれの行の「Number Passive Companies」の列に +1 を追加します。テーブルの各行は、変数 TOTA の異なる範囲を表します

私が試みたこと

これまでに試したことは、データセット処理の結果を含むテーブルを作成することです

    Number Active Companies  Number Passive Companies   Total
1   0                       0                           0
2   0                       0                           0
3   0                       0                           0
4   0                       0                           0
5   0                       0                           0
6   0                       0                           0
7   0                       0                           0
8   0                       0                           0
9   0                       0                           0
10  0                       0                           0



result<-matrix(data = 0, nrow = 10, ncol = 3, byrow = FALSE, dimnames = list(1:10,c("Number Active Companies","Number Passive Companies","Total")));   

その後、変数の異なる範囲を含む 10 個のグループを作成しました。

x > 0 && x < 100
x > 100 && x < 1000
x > 1000 && x < 10000
x > 10000 && x < 100000
x > 100000 && x < 1000000
x > 1000000 && x < 1000000
x > 5938000 && x < 10938000
x > 10938000 && x < 15938000
x > 15938000 && x < 18938000
x=NA

ここで、この方法で前のテーブルにデータを入力したいと思います。Y 変数の各行を分析したいのですが、それが 1 の場合は、アクティブな企業の列番号に 1 を追加し、Y がゼロの場合は番号が属している行に 1 を追加する必要があります。

    for(i in TOTA){
    if (Y=1)
          if(x > 0 && x < 100){
          }else if(x > 100 && x < 1000){
          }else if(x > 1000 && x < 10000){
          }else if(x > 10000 && x < 100000){
          }else if(x > 100000 && x < 1000000){
          }else if( x > 1000000 && x < 1000000){
          }else if( x > 1000000 && x < 1000000){
          }else if( x > 5938000 && x < 10938000){
          }else if( x > 10938000 && x < 15938000){      
          }else if( x > 15938000 && x < 18938000) {
          }else{
           //Nas
          } 
    }else if(Y=0){

          if(x > 0 && x < 100){
          }else if(x > 100 && x < 1000){
          }else if(x > 1000 && x < 10000){
          }else if(x > 10000 && x < 100000){
          }else if(x > 100000 && x < 1000000){
          }else if( x > 1000000 && x < 1000000){
          }else if( x > 1000000 && x < 1000000){
          }else if( x > 5938000 && x < 10938000){
          }else if( x > 10938000 && x < 15938000){      
          }else if( x > 15938000 && x < 18938000) {
          }else{
           //Nas
          } 
    }

質問

表にはどのように書けばよいでしょうか?このプロセスをより簡単な方法で行うにはどうすればよいですか? このテーブルのヒストグラムを作成するにはどうすればよいですか?

関数 quantile() と percentile() のマニュアルを読んだという事実を考えると、私は正しいことをしているかどうか疑問に思っていますが、それらは同じことをしているようです

私の目標を達成するためのガイドラインと、おそらくいくつかのコマンドを教えてください

ありがとうございました

4

1 に答える 1