【问题标题】:Using R, how to create a new data set with the Median of a column in my existing dataframe?使用 R,如何在现有数据框中使用列的中值创建新数据集?
【发布时间】:2017-04-15 11:03:03
【问题描述】:

我是 R 新手,我想要来自 dataframe 的新数据集,其中将包含一个新列,该列表示 dataframe 的现有列(称为 Total Extras)中的值的 median。后者包括大约 5,000 个单独的观察结果。 我对如何执行此任务感到有些困惑,因为需要根据以下标准计算中位数:属性、月份、年份和市场

目前,我的dataframe(我们称之为mydata1)如下(显示前5行):

Property    Date      Month  Year      Market    TotalExtras
ZIL         1-Jan-15    1    2015        UK         450.00
ZIL         1-Jan-15    1    2015        UK         125.00
ZIL         1-Feb-15    2    2015        UK         300.00
ZIL         1-Feb-16    2    2016        FR         225.00
EBA         1-Feb-15    2    2015        UK         150.00
... 

我需要我的 R 代码来创建一个新的 dataframe(我们称之为 mydata2),如下所示:

   Property        Date      Month  Year      Market    MedianTotalExtras
     ZIL         1-Jan-15      1    2015        UK         175.00
     ZIL         1-Feb-15      2    2015        UK         250.00
     ZIL         1-Feb-16      2    2016        FR         400.00
     EBA         1-Feb-15      2    2015        UK         328.00
     ...

以上数字仅用于说明目的。基本上,mydata2 正在根据 Property、Date 和 Market 对数据进行重新分组,其中“Median Total Extras”列替换了 mydata1 的“TotalExtras”列。

这可以用 R 完成吗?

【问题讨论】:

  • 如果您的问题是可以用 R 完成,那么请放心,它可以... :)

标签: r dataframe graph data-manipulation median


【解决方案1】:

dplyr 中,一般要点如下:

mydata1 %>% 
    group_by(Property, Date, Market) %>% 
    summarise(MedianTotalExtras = median(TotalExtras))

其中group_by 将数据集切割成具有唯一PropertyDateMarket 组合的片段,summarise + median 计算中位数。

【讨论】:

  • 谢谢,正是我需要的。
猜你喜欢
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
相关资源
最近更新 更多