对于示例数据框:
df1 <- structure(list(X = 1:15, a = c(2L, 3L, 4L, 3L, 7L, 5L, NA, 2L,
9L, 7L, 0L, 1L, 20L, 15L, 14L)), .Names = c("X", "a"),
class = "data.frame", row.names = c(NA,
-15L))
我正在使用以下代码将列“ a”划分为四分位数:
cut.at.n.tile <- function(X , n = 4){
cut( X , breaks = quantile( X ,
probs = (0:n)/n , na.rm = TRUE ) , include.lowest = TRUE )}
df1$a.quartile <- cut.at.n.tile( df1$a , n = 4)
如何用1-4替换标签(最低的是1)?我不想简单地重新编码值,因为我将使用不同的连续变量运行很多次。
任何帮助将不胜感激。
使用labels
参数来cut
...
cut.at.n.tile <- function(X , n = 4){
cut( X , breaks = quantile( X ,
probs = (0:n)/n , na.rm = TRUE ) ,
labels = 1:n,
include.lowest = TRUE )}
cut.at.n.tile( df1$a , n = 4)
## [1] 1 2 2 2 3 3 <NA> 1 4 3
## 1 1 4 4 4
## Levels: 1 2 3 4
您可能也会对此感兴趣ggplot2::cut_number
,它实际上具有相同的作用...
ggplot2::cut_number(df1$a, n = 4, labels = 1:4)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句