使用分位数获得 r 中的百分位数
Use quantile to get percentile in r
我正在尝试将我的数据分为 30% 和 70% 之间的 3 个组,Previosly 很容易让我按相等的组来分配我的数据,如下面的代码证明。
MV_UK$`1993` <- with(MV_UK, cut(MV_UK$`1993`, breaks = quantile(MV_UK$`1993`, probs = seq(0,1 , by= 0.5), na.rm = TRUE), include.lowest = TRUE , labels= c("S","B") ))
我试过这个代码
MV_UK$`1992` <- with(MV_UK, cut(BTM_UK$`1992`, breaks = quantile(MV_UK$`1992`, probs = c(.3,.7) , na.rm = TRUE), include.lowest = TRUE , labels= c("L","M","B") ))
但是我得到一个错误
lengths of 'breaks' and 'labels' differ
基本上就是错误所说的 -
在第二个示例中,您提供了 2 个组 (probs = c(.3,.7)),这少于您提供的标签数量 (c("L","M","B"))
请注意,在您的第一个代码片段中,
seq(0,1 , by= 0.5)
您生成 3 个不同的值(0.0、0.5、1.0)
因此您可以添加另一个分界点,或删除标签。
我正在尝试将我的数据分为 30% 和 70% 之间的 3 个组,Previosly 很容易让我按相等的组来分配我的数据,如下面的代码证明。
MV_UK$`1993` <- with(MV_UK, cut(MV_UK$`1993`, breaks = quantile(MV_UK$`1993`, probs = seq(0,1 , by= 0.5), na.rm = TRUE), include.lowest = TRUE , labels= c("S","B") ))
我试过这个代码
MV_UK$`1992` <- with(MV_UK, cut(BTM_UK$`1992`, breaks = quantile(MV_UK$`1992`, probs = c(.3,.7) , na.rm = TRUE), include.lowest = TRUE , labels= c("L","M","B") ))
但是我得到一个错误
lengths of 'breaks' and 'labels' differ
基本上就是错误所说的 - 在第二个示例中,您提供了 2 个组 (probs = c(.3,.7)),这少于您提供的标签数量 (c("L","M","B"))
请注意,在您的第一个代码片段中, seq(0,1 , by= 0.5) 您生成 3 个不同的值(0.0、0.5、1.0)
因此您可以添加另一个分界点,或删除标签。