如何按組跨行重復使用方法

當有兩個標識符時,我想按組獲取平均值。假設我有以下數據集:

set.seed(123)
df <- data.frame(id = 1:2,
                 id2 = c("a","b", "c","c", "b","c", "a","b", "c","b"),
                 var1 = runif(10))
                 

我正在嘗試用數據表獲得兩組的平均值。我想用平均值創建另一個列(avg)。這意味著,當平均值與id和id2匹配時,它將在行之間重復。這就是我要做的:

setDT(df)[, avg := mean(var1), by=list(id,id2)]

所以,我想澄清一下。有兩個值標識為id=1和id2=a。平均值為(0.287577 5+0.5281055)/ 2=0.4078415。我希望該值在第1行和第7行旁邊重復,這兩行對應于id=1和id=2=a,并依次用于所有其他平均值。我該怎么做?

? 最佳回答:
library(tidyverse)

df %>% 
  group_by(id, id2) %>%
  mutate(avg = mean(var1))

      id id2     var1   avg
   <int> <chr>  <dbl> <dbl>
 1     1 a     0.288  0.408
 2     2 b     0.788  0.712
 3     1 c     0.409  0.480
 4     2 c     0.883  0.464
 5     1 b     0.940  0.940
 6     2 c     0.0456 0.464
 7     1 a     0.528  0.408
 8     2 b     0.892  0.712
 9     1 c     0.551  0.480
10     2 b     0.457  0.712

您提供的代碼也可以使用data.table完成相同的任務。注意,setDT將轉換相同的df,如果打印df,則不會創建額外的列。

主站蜘蛛池模板: 老熟妇仑乱视频一区二区 | 亚洲欧洲一区二区| 精品无码一区二区三区爱欲| 成人精品一区二区三区校园激情| 国产综合一区二区| 一区二区三区视频免费| 最新中文字幕一区二区乱码| 日产亚洲一区二区三区| 国模吧一区二区三区| 在线观看国产一区| 亚洲一区二区高清| 无码人妻一区二区三区在线水卜樱| 冲田杏梨AV一区二区三区| 亚洲日本va一区二区三区| 2022年亚洲午夜一区二区福利| 精品一区二区在线观看| 国产无套精品一区二区 | 日韩在线一区二区| 色偷偷一区二区无码视频| 久久4k岛国高清一区二区| 日韩精品无码中文字幕一区二区| 中文字幕VA一区二区三区 | 亚洲欧美一区二区三区日产| 天堂资源中文最新版在线一区| 国产亚洲一区二区手机在线观看| 中文字幕一区二区视频| 国产麻豆精品一区二区三区v视界 国产美女精品一区二区三区 | 国产AⅤ精品一区二区三区久久| 内射白浆一区二区在线观看| 无码国产精品一区二区高潮| 波多野结衣AV一区二区三区中文| 成人精品视频一区二区三区尤物| 午夜DV内射一区区| 变态拳头交视频一区二区| 国产免费一区二区视频| 国产伦精品一区二区三区女| 在线一区二区三区| 韩日午夜在线资源一区二区| 日韩欧国产精品一区综合无码| 91精品国产一区| 爱爱帝国亚洲一区二区三区|