【问题标题】:R - Aggregate.Data.Frame With QuartilesR - 带四分位数的 Aggregate.Data.Frame
【发布时间】:2018-10-17 03:22:49
【问题描述】:

我是 R 编码的新手(非常新),似乎无法弄清楚如何正确输出四分位数。可能比我发现的要简单得多!

请帮忙!

这是我目前拥有的代码,它非常适合中位数和平均值。

MedianCol = aggregate.data.frame(
  x = list(COLVALUE=COLVALUE),
  by = list(YEAR=YEAR),
  FUN = median,
  na.rm=TRUE
)

MeanCol = aggregate.data.frame(
  x = list(COLVALUE=COLVALUE),
  by = list(YEAR=YEAR),
  FUN = mean,
  na.rm=TRUE
)

#This is where I have an issue, I don't know how to even code it
Q3Col = aggregate.data.frame(
  x = list(COLVALUE=COLVALUE),
  by = list(YEAR=YEAR),
  FUN = quantile(0.25),
  na.rm=TRUE
)

#I will have to add the quartiles in the merge below as well
MovingAverage <- merge(x = MedianCol, y = MeanCol, by = "YEAR", all = TRUE)

Q3Col 是我需要返回第三个四分位值的地方。我还需要第一四分位数、最佳十分位数和最差十分位数。

我的数据如下所示: Data

提前谢谢你!

【问题讨论】:

  • meanColmedianCol 对你有用吗?你想写一个函数吗?
  • quantile(0.25)不是函数,试试Q3Col = aggregate.data.frame(x = list(COLVALUE=COLVALUE), by = list(YEAR=YEAR), FUN = quantile, probs = 0.25, na.rm=TRUE )
  • 虽然 Q3 通常是 0.75 ;)

标签: r


【解决方案1】:

这是我创建的工作脚本。这对我来说可以。在 Tibco Spotfire 中使用。

MedianCol = aggregate.data.frame(
  x = list(Median=Median),
  by = list(YEAR=YEAR),
  FUN = median,
  na.rm=TRUE
)

Q1Col = aggregate.data.frame(
  x = list(Q1=Q1), 
  by = list(YEAR=YEAR), 
  FUN = quantile, probs = 0.25, 
  na.rm=TRUE 
)

Q3Col = aggregate.data.frame(
  x = list(Q3=Q3), 
  by = list(YEAR=YEAR), 
  FUN = quantile, probs = 0.75, 
  na.rm=TRUE 
)

P10Col = aggregate.data.frame(
  x = list(P10=P10), 
  by = list(YEAR=YEAR), 
  FUN = quantile, probs = 0.10, 
  na.rm=TRUE 
)

P90Col = aggregate.data.frame(
  x = list(P90=P90), 
  by = list(YEAR=YEAR), 
  FUN = quantile, probs = 0.90, 
  na.rm=TRUE 
)

Merge1 <- merge(x = Q1Col, y = Q3Col, by = "YEAR", all = TRUE)
Merge2 <- merge(x = P10Col, y = P90Col, by = "YEAR", all = TRUE)
MergeFinal <- merge(x = Merge1, y = Merge2, by = "YEAR", all = TRUE)
MovingAverage <- merge(x = MergeFinal, y = MedianCol, by = "YEAR", all = TRUE)

这是输出的内容: OUTPUT

【讨论】:

    【解决方案2】:

    太棒了!那成功了。太感谢了!!! 是的,第三季度是 0.75。我的命名错误!

    我使用 meanCol、MedianCol、Q3Col 作为“变量”,因为我想将这些输入到一个“表”中。

    如何在下面添加 Q3Col?我试过了,我得到了一个错误。 我似乎不能添加超过 2 个。

    这行得通:

    MovingAverage

    这不是:

    MovingAverage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2019-10-14
      • 2013-07-09
      • 2018-09-30
      • 2017-04-25
      • 1970-01-01
      • 2012-08-11
      相关资源
      最近更新 更多