0

列の合計の分位数に基づいてデータフレームから列を選択するスマートな方法はありますか? たとえば、列の合計が最初の分位数にあるデータフレームから列のみを選択します。データに基づいた列の合計をサブセット化でき、列の合計の分位数を計算できますが、これらを組み合わせる良い方法はありますか? ありがとう。

# e.g. subset data - select columns whose column sums are less than 5
mydata <- mydata[,colSums(mydata) < 5]

# e.g create quantiles on colSums
mydata_cs <- colSums(mydata)
quart.mydata_cs <- quantile(mydata_cs,probs=seq(0,1, by=0.25))
4

2 に答える 2

3

を使用するmydata_csと、次のように動作するはずです

mydata.firstquart <- mydata[,mydata_cs < quantile(mydata_cs,0.25)]

コードの最初の行に基づいて、「最初の四分位」は最低四分位を意味すると思います。最高の四分位数が必要な場合は、それを次のように変更します

mydata.firstquart <- mydata[,mydata_cs > quantile(mydata_cs,0.75)]

andではなく<=orを使用することもできます。>=<>

于 2013-01-22T16:21:38.513 に答える
1
 x <- c(1,2,3,4,5)
 y <- c(4,6,9,2,9)
 df <- data.frame(x,y)
 q <-  quantile(colSums(df),probs=seq(0,1, by=0.25))
 df[,colSums(df) < q[2] ,drop=FALSE]
于 2013-01-22T16:21:57.577 に答える