创建一组分组的值(平均值)

时间:2019-06-16 10:45:13

标签: r

我有一个很大的数据集(“ bsa”,取自23年),其中包含用于“左右”视图(政治取向)的变量(“ leftrigh”)。我想总结一下同类群组随着时间的变化。例如,在1994年,这个比例的平均值为45岁(2.6);在1995年,此比例的平均值对于46岁的人们来说是(例如)2.7 –等。我创建了出生年份变量(“ yrbrn”)来简化这一过程。

我已经成功创建了方法:

bsa <- bsa %>% group_by(yrbrn, syear) %>% mutate(meanlr = mean(leftrigh))

我在努力挣扎的是按(调查的)年和(调查时的)年龄来总结均值。如果我可以创建一个按年龄x调查年份组织的数组(包含这些均值),则可以通过检查对角线来查看随时间的变化。但是我不知道该怎么做-我的技能非常有限...

A tibble: 66,744 x 10
Groups:   yrbrn [104]
     Rsex     Rage  leftrigh OldWt syear     yrbrn   coh   per agecat  meanlr
1 1 [Male]      40  1 [left] 1.12   2017      1977    17  2017 [37,47)   2.61
2 2 [Female]    79  1.8      0.562  2017      1938     9  2017 [77,87)   2.50
3 2 [Female]    50  1.5      1.69   2017      1967    15  2017 [47,57)   2.59
4 1 [Male]      73  2        0.562  2017      1944    10  2017 [67,77)   2.57
5 2 [Female]    31  3        0.562  2017      1986    19  2017 [27,37)   2.56
6 1 [Male]      74  2.2      0.562  2017      1943    10  2017 [67,77)   2.50
7 2 [Female]    58  2        0.562  2017      1959    13  2017 [57,67)   2.56
8 1 [Male]      59  1.2      0.562  2017      1958    13  2017 [57,67)   2.53
9 2 [Female]    19  4        1.69   2017      1998    21  2017 [17,27)   2.46

可能的格式,用于显示此信息以查看随时间的变化:

        1994  1995  1996  1997  1998  1999  2000  
18  
19  
20  
21  
22  
23  
24  
25  
etc.  

1 个答案:

答案 0 :(得分:1)

您可以同时group_by年龄和年份:

# Setup (& make reproducible data...)
n <- 10000
df1 <- data.frame(
  'yrbrn' = sample(1920:1995, size = n, replace = T),
  'Syear' = sample(2005:2015, size = n, replace = T),
  'leftrigh' = sample(seq(0,5,0.1), size = n, replace = T))

# Solution
df1 %>% 
  group_by(yrbrn, Syear) %>% 
  summarise(meanLR = mean(leftrigh)) %>% 
  spread(Syear, meanLR)

产生以下内容:

# A tibble: 76 x 12
# Groups:   yrbrn [76]
   yrbrn `2005` `2006` `2007` `2008` `2009` `2010` `2011` `2012` `2013` `2014` `2015`
   <int>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
 1  1920   3.41   1.68   2.26   2.66   3.21   2.59   2.24   2.39   2.41   2.55   3.28
 2  1921   2.43   2.71   2.74   2.32   2.24   1.89   2.85   3.27   2.53   1.82   2.65
 3  1922   2.28   3.02   1.39   2.33   3.25   2.09   2.35   1.83   2.09   2.57   1.95
 4  1923   3.53   3.72   2.87   2.05   2.94   1.99   2.8    2.88   2.62   3.14   2.28
 5  1924   1.77   2.17   2.71   2.18   2.71   2.34   2.29   1.94   2.7    2.1    1.87
 6  1925   1.83   3.01   2.48   2.54   2.74   2.11   2.35   2.65   2.57   1.82   2.39
 7  1926   2.43   3.2    2.53   2.64   2.12   2.71   1.49   2.28   2.4    2.73   2.18
 8  1927   1.33   2.83   2.26   2.82   2.34   2.09   2.3    2.66   3.09   2.2    2.27
 9  1928   2.34   2.02   2.1    2.88   2.14   2.44   2.58   1.67   2.57   3.11   2.93
10  1929   2.31   2.29   2.93   2.08   2.11   2.47   2.39   1.76   3.09   3      2.9