簡體   English   中英

基於列總和的分位數的子集數據(列)

[英]Subset data (columns) based on quantiles of column sums

有什么聰明的方法可以根據列總和的分位數從數據框中選擇列? 例如,僅從數據列中選擇列總和在第一個分位數中的列。 我可以基於列總和的子集數據,也可以計算列總和的分位數,但是有沒有一種很好的方法可以將這些合並? 謝謝。

# 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))

使用您的mydata_cs ,以下應該可以工作

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

根據您的第一行代碼,我假設“第一四分位數”是指最低四分位數。 如果您想要最高的四分位數,只需將其更改為

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

您可能還想使用<=>=而不是<>

 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM