使用 R,如何使用现有数据框中列的中位数创建新数据集?

Using R, how to create a new data set with the Median of a column in my existing dataframe?

我是 R 的新手,我想要一个来自我的 dataframe 的新数据集,其中将包含一个新列,该列表示现有列中值的 median(称为 Total Extras)的 dataframe。后者包括大约 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 正在根据 属性、日期和市场对数据进行重新分组,其中列 'Median Total Extras' 替换了 mydata1 的 'TotalExtras' 列。

这可以用 R 完成吗?

dplyr 中,一般要点类似于:

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

其中 group_by 将数据集分割成具有独特 PropertyDateMarket 组合的片段,以及 summarise + median计算中位数。