【问题标题】:convert list output from tapplying quantile() into an array with quantile as a dimension将点击分位数()的列表输出转换为以分位数为维度的数组
【发布时间】:2017-05-08 19:26:34
【问题描述】:

下面的废话示例只是为了重现性。由于在数据帧上点击分位数函数,我得到了类似于下面的输出。然而,这并不是我想要的。与其拥有一个向量列表,每个向量都包含 10% 和 90% 分位数,我想要一个数组,其中包含由 tapply 返回的列表的所有维度以及另一个分位数维度(两个级别,10% 和 90%)。有什么方法可以将我的 tapply 输出转换成这个?

 example.A <- chickwts; example.A$fac2 <- "A"
example.B <- chickwts; example.B$fac2 <- "B"
 example.1 <- rbind(example.A, example.B); example.1$fac3 = "a"
example.2 <- rbind(example.A, example.B); example.2$fac3 = "b"
 example <- rbind(example.1, example.2)
 names(example)[2] <- "rep"; levels(example$rep) <- c("1", "2", "3", "4", "5", "6")

example <- tapply(example$weight, list(example$rep, example$fac2, example$fac3), quantile, probs =c(0.1, 0.9))

【问题讨论】:

    标签: r


    【解决方案1】:

    你正在寻找这样的东西吗? (我不清楚你是否想要一个实际的 array 对象,这是否是你想要的)

    library(dplyr)
    library(tidyr)
    
    example %>%
      group_by(rep, fac2, fac3) %>%
      summarise(q10 = quantile(weight, probs = 0.10),
                q90 = quantile(weight, probs = 0.90)) %>%
      gather(quantile, value, q10, q90)
    

    【讨论】:

      猜你喜欢
      • 2017-11-20
      • 2018-11-09
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多