R 问题中的分组依据:Tibble、小数位和显示样本大小?

Group by in R questions: Tibble, decimal places, and show sample size?

这是我的数据框“fulldays”(header Plastic 列指的是第二列数字,第一列只是 R 放入的行的编号列表,我不知道如何删除):

Plastic Age Ones Zeros Nonzeros CellsCounted AllDaysAvail
1        2  10    2     5        5           10         TRUE
2       57   8    4     2        8           10         TRUE
3        3   9    2     4        6           10         TRUE
4       81   9    3     1        9           10         TRUE
5      131  20    8     1        9           10         TRUE
6        5   8    5     5        5           10         TRUE
7       26  10    4     4        6           10         TRUE
8       76  12    2     6        4           10         TRUE
9        9   9    8     2        8           10         TRUE
10      36  14    2     5        5           10         TRUE
11      64  12    3     4        6           10         TRUE
12      74  22    5     4        6           10         TRUE
13      10  10    1     4        6           10         TRUE
14      21   9    7     3        7           10         TRUE
15      16   9    5     3        7           10         TRUE
17      18   8    4     3        7           10         TRUE
18      23  22    6     4        6           10         TRUE
19     106  11    2     1        9           10         TRUE
20     113   9    1     4        6           10         TRUE
21      24  11    2     5        5           10         TRUE
22      29   9    3     2        8           10         TRUE
23      85   9    6     4        6           10         TRUE
24     403  19    1     6        4           10         TRUE
25      25  19    1     2        8           10         TRUE
26      27  10    3     3        7           10         TRUE
27     121   7    7     3        7           10         TRUE
29      35  12    1     4        6           10         TRUE
30      39  18    2     6        4           10         TRUE
31      37   8    5     1        9           10         TRUE
32      63   7    8     2        8           10         TRUE
33     122  11    3     2        8           10         TRUE
34     148   9    4     4        6           10         TRUE
37      42  13    2     3        7           10         TRUE
38     144  12    0     9        1           10         TRUE
39      43  12    1     2        8           10         TRUE
40      47  20    6     4        6           10         TRUE
41      90  12    2     5        5           10         TRUE
42     119  12    2     4        6           10         TRUE
43     138   7    7     3        7           10         TRUE
44      56   4    7     3        7           10         TRUE
45      58  12    2     5        5           10         TRUE
46      60  22    3     4        6           10         TRUE
47      71   9    2     5        5           10         TRUE
48     288  18    0    10        0           10         TRUE
49      66  22    1     5        5           10         TRUE
50      67   9    0     8        2           10         TRUE
51     149  12    0     5        5           10         TRUE
52      70  14    5     4        6           10         TRUE
53      72  12    1     4        6           10         TRUE
54      78  12    0     4        6           10         TRUE
59      79  12    4     3        7           10         TRUE
60      83  11    4     4        6           10         TRUE
61      87   8    6     4        6           10         TRUE
63      92  11    1     4        6           10         TRUE
64      96   8    0     5        5           10         TRUE
65     125   7    7     3        7           10         TRUE
66      98   9    3     4        6           10         TRUE
67     107   6    2     3        7           10         TRUE
68     102  11    5     3        7           10         TRUE
69     103  10    0     1        9           10         TRUE
72     108  12    3     3        7           10         TRUE
73     153  12    4     3        7           10         TRUE
74     109  12    3     4        6           10         TRUE
75     118  10    4     5        5           10         TRUE
77     133  12    0     4        6           10         TRUE
79     157   8    0    10        0           10         TRUE
81     318  14    2     5        5           10         TRUE

我有这个代码:

new_data <- fulldays %>%
              group_by(Age) %>%
              summarize(OnesMean=mean(Ones), ZerosMean=mean(Zeros), NonZeroMean=mean(Nonzeros))

这是输出“new_data”(同样,年龄从第二列开始,而不是第一列):

Age OnesMean ZerosMean NonZeroMean
   <int>    <dbl>     <dbl>       <dbl>
 1     4     7         3           7   
 2     6     2         3           7   
 3     7     7.25      2.75        7.25
 4     8     3.43      4.29        5.71
 5     9     3.67      3.67        6.33
 6    10     2.33      3.67        6.33
 7    11     2.83      3.17        6.83
 8    12     1.75      4.31        5.69
 9    13     2         3           7   
10    14     3         4.67        5.33
11    18     1         8           2   
12    19     1         4           6   
13    20     7         2.5         7.5 
14    22     3.75      4.25        5.75

我有三个问题:

  1. 为什么 groupby 创建的是小标题而不是数据框?
  2. 为什么当我在“数据”部分单击“new_data”作为 object 时,它会显示带有这么多小数位的值(见下图)? [1]: https://i.stack.imgur.com/724G9.png
  3. 如何 add/bind 到 new_data 的列显示每个年龄段的样本量?换句话说,我想知道每个人有多少对每列的平均分数有贡献(理想情况下我会在“年龄”和“OnesMean”之间添加此列)

非常感谢,有什么问题请告诉我!

  1. tidyversetibble 一起使用,它们仍然是 data.frame,但有一些差异。所以当你在 data.frame 上使用 dplyr 函数时,它将变成 tibble data.frame.
  2. mean 函数不对结果进行舍入。如果你想让它们四舍五入,你需要让 R 做到这一点,例如 OnesMean = round(mean(Ones), 2)
  3. 您添加 n() 作为 summarise() 的参数之一。即summarise(OnesMean = mean(Ones), <...>, n()).