-1

データ フレームにペアの値の 2 つの列があります。パッケージcut2の関数を使用してデータを 1 つの列にビン化し、各ビンに少なくとも 25 のデータ ポイントがあるようにします。ただし、他の列の対応する値が必要です。Rを使用して便利な方法はありますか? 列Bをビンに入れる必要があります。Hmisc

A           B
-10.834510  1.680173
11.012966  1.866603
-16.491415  1.868667
-14.485036  1.900002
2.629104  1.960929
-3.597291  2.005348
.........
4

1 に答える 1

0

「他の列の対応する値」が必要な場合の意味が明確ではありません。最初の部分は、g (グループの数) 引数を使用して簡単に実現できます。

dfrm$Agrp <- cut2(dfrm$A, g=trunc(length(dfrm$A)/25) )

tapplyまたはaveまたは Hmisc 集計関数の 1 つを使用して Agrp 内の B の平均または中央値を集計できます。今日の質問の 1つには、いくつかの実用的な例があります: グループごとに要約統計を取得する方法、aggregateおよびこれらの関数または pkg:plyr 関数を使用する他の多くの例。

B 値の数がグループ間で必ずしも一定であるとは限らないことを考えると、A-grouped-value によって個々の値を提供すると考えることができる唯一の方法は、split. 偶数でない分割では、より「長方形」のオブジェクトではなくリストを返す必要がある場合があることを示すために、追加の行を追加しました。

dat <- read.table(text="A           B
 -10.834510  1.680173
 11.012966  1.866603
 -16.491415  1.868667
 -14.485036  1.900002
 2.629104  1.960929
 -3.597291  2.005348\n 3.5943 3.796", header=TRUE)
 dat$Agrp <- cut2(dat$A, g=trunc(length(dat$A)/3) )
 split(dat$B, dat$Agrp)
 #-----    
$`[-16.49, 2.63)`
[1] 1.680173 1.868667 1.900002 2.005348

$`[  2.63,11.01]`
[1] 1.866603 1.960929 3.796000

分割が行われた値のベクトルが必要な場合は、 regex on を使用して実現できます levels(dat$Agrp)

于 2012-03-24T22:53:39.060 に答える