在长数据框中更改具有相同前缀的不同组的名称

Change the name of different groups with same prefix in a long data frame

我有一个长格式的数据框,我想合并具有相同前缀的不同组。我正在使用的 df 的结构如下:

 id point variable value
 1531 36   P6A     area   290
 1532 48   P6B     area   230
 1533 60   P5A     area   20
 1534 72   P5B     area   180
 1535 84   P4A     area   100
 1536 96   P4B     area   90

我想改成这样:

 id point variable value
 1531 36   P6     area   260
 1533 60   P5     area   100
 1535 84   P4     area   80

请注意,新值是 PxA 和 PxB 的平均值。

如果有人能帮助我,我将不胜感激。

穆里略

如果您只需要保留每个值的前两个字符(如您的示例数据),那么您可以这样做:

library(dplyr)

dfMean = df %>% mutate(point = substr(point, 1,2)) %>%
       group_by(point) %>%
       summarise(PointMean = mean(value))

基本的 R 选项是使用 aggregate:

df$point2 = substr(df$point, 1,2)
aggregate(value ~ point2, data=df, mean)