[英]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.