计算低于 30% 百分位数的记录

发布于 2025-01-18 17:11:09 字数 434 浏览 0 评论 0原文

我有一张桌子,就像

mtcars

我需要计算30%百分位数的几个型号一样。我发现那个宾至如归。但是我找不到如何计算它们。

library(dplyr)
library(purrr)
mtcars %>% summarise(across(where(is.numeric), ~ quantile(.x, 0.30 ) ))  
  mpg cyl cyl disp hp drat wt qsec vs am齿轮碳
1 15.98 4 142.06 106.2 3.15 2.773 17.02 0 0 0 3 2
 

mtcars%>%总结(遍历(is.numeric),〜刻克(.x,0.30)))))))

I have a table like

mtcars

I need to count how many models are velow the 30% percentile. I found that perecentile. but I do not found how to count them.

library(dplyr)
library(purrr)
mtcars %>% summarise(across(where(is.numeric), ~ quantile(.x, 0.30 ) ))  
mpg cyl   disp    hp drat    wt  qsec vs am gear carb
1 15.98   4 142.06 106.2 3.15 2.773 17.02  0  0    3    2

mtcars %>% summarise(across(where(is.numeric), ~ quantile(.x, 0.30 ) ))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痞味浪人 2025-01-25 17:11:09

我们转换为逻辑向量 (.x < quantile(.x, 0.30)) 并使用 sum 获取计数 - as TRUE - > 1 和 FALSE -> 0-

library(dplyr)
mtcars %>% 
    summarise(across(where(is.numeric), ~ sum(.x < quantile(.x, 0.30 ) )))

输出

   mpg cyl disp hp drat wt qsec vs am gear carb
1  10   0   10 10    9 10    9  0  0    0    7

We convert to a logical vector (.x < quantile(.x, 0.30)) and get the count with sum - as TRUE -> 1 and FALSE -> 0

library(dplyr)
mtcars %>% 
    summarise(across(where(is.numeric), ~ sum(.x < quantile(.x, 0.30 ) )))

-output

   mpg cyl disp hp drat wt qsec vs am gear carb
1  10   0   10 10    9 10    9  0  0    0    7
尝蛊 2025-01-25 17:11:09

在基本中,您可以

num <- sapply(mtcars, is.numeric)
sapply(mtcars[num], \(x) sum(x < quantile(x, .3)))
# mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
#  10    0   10   10    9   10    9    0    0    0    7 

colSums(mtcars[num] < lapply(mtcars[num], quantile, .3))
# mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
#  10    0   10   10    9   10    9    0    0    0    7 

或(使用matrixstats :: colquantiles

colSums(mtcars[num] < as.list(matrixStats::colQuantiles(as.matrix(mtcars[num]), probs=.3)))
# mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
#  10    0   10   10    9   10    9    0    0    0    7 
    

In base R you may do

num <- sapply(mtcars, is.numeric)
sapply(mtcars[num], \(x) sum(x < quantile(x, .3)))
# mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
#  10    0   10   10    9   10    9    0    0    0    7 

or

colSums(mtcars[num] < lapply(mtcars[num], quantile, .3))
# mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
#  10    0   10   10    9   10    9    0    0    0    7 

or (using matrixStats::colQuantiles)

colSums(mtcars[num] < as.list(matrixStats::colQuantiles(as.matrix(mtcars[num]), probs=.3)))
# mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
#  10    0   10   10    9   10    9    0    0    0    7 
    
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文