R中基于多个条件的列平均值

Dim*_*kov 0 r rows mean

我有一个数据框

DF <- data.frame(y1=c("AG","AG","AI","AI","AG","AI"),
      y0=c(2,2,1,1,2,1),
      y3=c(1994,1996,1997,1999,1994,1994),y4=c("AA","FB","AA","EB","AA","EB"),
      mw3wuus=c(26,34,22,21,65,78),
      Country_true=c("Antigua and  Barbuda","Antigua and  Barbuda","Anguilla","Anguilla","Antigua and  Barbuda","Anguilla"))

 DF
  y1 y0   y3 y4 mw3wuus         Country_true
1 AG  2 1994 AA      26 Antigua and  Barbuda
2 AG  2 1996 FB      34 Antigua and  Barbuda
3 AI  1 1997 AA      22             Anguilla
4 AI  1 1999 EB      21             Anguilla
5 AG  2 1994 AA      65 Antigua and  Barbuda
6 AI  1 1994 EB      78             Anguilla
Run Code Online (Sandbox Code Playgroud)

我正在尝试根据其他列相等的事实创建一个带有均值变量的新列

例如,在本例中,一切都必须是相同的,但行5和1,我需要计算的平均值mw3wuus,因为它们具有相同的值y1y0y3,和y4

nic*_*ico 5

你可能想玩 aggregate

例如:

aggregate(DF$mw3wuus, FUN=mean, 
          by=list(y1=DF$y1, y0=DF$y0, y3=DF$y3, y4=DF$y4))
Run Code Online (Sandbox Code Playgroud)

会给你:

  y1 y0   y3 y4    x
1 AG  2 1994 AA 45.5
2 AI  1 1997 AA 22.0
3 AI  1 1994 EB 78.0
4 AI  1 1999 EB 21.0
5 AG  2 1996 FB 34.0
Run Code Online (Sandbox Code Playgroud)