是否有一种智能方法可以根据列总和的分位数从数据框中选择列?例如,仅从列数和第一个分位数的数据帧中选择列。我可以基于数据的列总和,我可以计算列总和的分位数,但有没有一种方法可以合并这些?感谢。
# 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))
答案 0 :(得分:3)
使用mydata_cs
,以下内容应该有效
mydata.firstquart <- mydata[,mydata_cs < quantile(mydata_cs,0.25)]
根据您的第一行代码,我假设“第一四分位数”表示最低四分位数。如果您想要最高四分位数,只需将其更改为
即可mydata.firstquart <- mydata[,mydata_cs > quantile(mydata_cs,0.75)]
您可能还想使用<=
或>=
而不是<
和>
。
答案 1 :(得分: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]