按两个变量组进行汇总

2023-12-07

考虑一个简化的数据集(真实的数据集有更多的列和行):

df
    tp tf   weight
1  FWD RF 78.86166
2   MF LF 81.04566
3  DEF LF 80.70527
4  DEF LF 82.96071
5  DEF RF 78.42544
6   GK LF 79.37686
7  DEF RF 78.79928
8   MF RF       NA
9   MF RF 78.93815
10 DEF RF 80.00284

我想按分组填充重量中的缺失值mediantp 和 tf 的组合

到目前为止我已经尝试过以下内容(我使用过 dplyr)

temp <- df %>% group_by(tp,tf) %>% summarise(mvalue = median(weight,na. rm = TRUE))

这使得温度为:

temp
Source: local data frame [6 x 3]
Groups: tp [?]

      tp     tf   mvalue
  <fctr> <fctr>    <dbl>
1    DEF     LF 81.83299
2    DEF     RF 78.79928
3    FWD     RF 78.86166
4     GK     LF 79.37686
5     MF     LF 81.04566
6     MF     RF 78.93815

现在我无法弄清楚如何用相应的组中位数填充 df 中的缺失值。

在我的简单情况下,只有一个 NA 对应于 tp = MF 和 tf = RF, 如果你查看 temp 的中值是 78.93815

一般情况下我该怎么做?如果您有比我最初的方法更好的方法,请提出建议。

EDIT:实际的数据帧有一个唯一的 Id 变量(如果这有任何区别或有帮助的话)。


你可以试试,

library(dplyr)
df %>% 
   group_by(tp, tf) %>% 
   mutate(weight = replace(weight, is.na(weight), median(weight, na.rm = TRUE)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按两个变量组进行汇总 的相关文章

随机推荐