2017-01-25 5 views
0

ビン長を作成したいサーフクラムの長さのデータベースがあります。これらのクラムの長さは、20cmから180cmの範囲です。これらの長さを3 cm単位で一緒にビンします。たとえば、長さ1,2または3のビン長は3、長さ4,5および6はビン長6、および7,8,9はすべてビン長さ9となります。以下同様です。ビン長を作成するR

私が望むビンのカテゴリーは3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 102 105 108 111 114 117 120 123 126 129 132 135 138 141 144 147 150 153 156 159 162 165 168 171 174 177 180.

また、一緒にビニングされる長さとともにFREQを追加する必要があります。たとえば、長さが58cm(FREQ = 2)、59cm(FREQ = 1)、および60cm(FREQ = 5)の場合、最終結果は60cmで、頻度は8です。

STA  DATE  SPP LENG FREQ 
5002 06/12/85 403 82 1 
5002 06/12/85 403 90 1 
5002 06/12/85 403 94 2 
5002 06/12/85 403 98 1 
5002 06/12/85 403 99 1 
5002 06/12/85 403 102 1 
5002 06/12/85 403 105 1 
5002 06/12/85 403 106 1 
5002 06/12/85 403 107 1 
5002 06/12/85 403 111 1 
5003 06/12/85 403 75 1 
5003 06/12/85 403 76 1 
5003 06/12/85 403 92 1 
5003 06/12/85 403 93 1 
5003 06/12/85 403 95 1 
5003 06/12/85 403 151 1 
5004 06/12/85 403 130 1 
5004 06/12/85 403 140 1 
5004 06/12/85 403 143 1 
5004 06/12/85 403 144 1 
5004 06/12/85 406 145 1 
5004 06/12/85 403 146 1 
5004 06/12/85 406 147 1 
5004 06/12/85 403 153 1 

私はかなりRに慣れているので、これをどうやってやるのか分かりません。助けてください!

+0

あなたは天井のように動作し、最も近い3にはしたくないですか? –

+0

この投稿は開始する場所です:http://stackoverflow.com/questions/27839432/how-to-generate-bin-frequency-table-in-r –

+0

'dput(df)'を実行して、ここの結果はあなたのdata.frameを簡単に再現できますか? – Ben

答えて

0

私は、これは、あなたの質問に答えると信じて -

dat$bins<-ceiling(dat$LENG/3)*3 
ndat<-aggregate(dat[,c('FREQ')],by=list(dat$STA,dat$DATE,dat$SPP,dat$bins),FUN=sum) 
0

cut()機能がビニング要因に数値になります。

cutoff_lengths <- seq(0, 180, by = 3) 
df$BIN <- cut(df$LENG, cutoff_lengths, labels = cutoff_lengths[-1]) 
table(df$BIN) 

cutoff_lengths[-1]ラベルはすべてが、cutoff_lengthsの最初の値であることを意味します。各ビンは2つのカットポイントの間にあるので、カットポイントよりも1つ少ないビンがあります。丸めたいので、最も低いカットポイントはラベルとして使用されません。

関連する問題