首页 文章

将分位数桶应用于行

提问于
浏览
0

我的目标是为给定列 Build 分位数,然后根据这些五分位数为每一行分配适当的存储桶 .

确定五分位数据很容易:

quantile(df$x, probs=seq(0,1,0.2),na.rm = TRUE)

但我已经使用了 applytapply ,但还没到那里 . 这样的事情只会产生与上面基本相同的信息,但会引用特定的UID和分支中的其他列:

apply(df, 2, quantile, probs = c(0.2, 0.4, 0.6, 0.8, 1.0), na.rm = TRUE)

1 回答

  • 1

    如果我理解你的意思,使用虹膜样本数据:

    q <- quantile(iris$Sepal.Length, probs=seq(0,1,0.2),na.rm = TRUE)
    

    获得五分位数 . 然后,您可以使用 cut 将分析结果分配给存储桶 .

    iris$qc <- cut(iris$Sepal.Length, q)
    table(iris$qc)
    

    给你

    (4.3,5]    (5,5.6]  (5.6,6.1] (6.1,6.52] (6.52,7.9] 
             31         33         30         25         30
    

    我认为这就是你想要的 . 您可以根据需要更改名称,也可以使用选项 .

相关问题