有没有一种方法可以使用均值(SE)而不是R中的计数来实现平面表?

时间:2020-08-04 20:19:50

标签: r r-markdown

我正在尝试使用Rmarkdown编写出版物,但我坚持使用表格格式。我正在寻找一种实现均值作为价值的平面表的方法。

假设我有一个看起来像这样的数据框:

F1  F2  F3  V1  V2  V3  V4  V5
I   N0  T   1.977546019 137.5   0.83    8.114217417 1.032679447
I   N0  T   2.342365156 139.4   0.85    10.3602728  0.871637237
I   N0  T   2.170706854 141.2   0.82    11.59271819 1.258035755
I   N0  V   1.559072025 114.9   0.87    11.57618562 1.661523112
I   N0  V   1.984240008 118.6   0.88    11.9835584  1.60688624
I   N0  V   1.68756027  116.3   0.88    11.79686026 1.78102523
I   N1  T   2.19858517  139.7   0.85    33.1128997  4.312955185
I   N1  T   3.249054469 136.4   0.86    29.69128121 3.047780521
I   N1  T   2.223041022 142.1   0.85    20.65967924 2.332772924
I   N1  V   1.595849998 118.2   0.89    19.84579734 2.191828463
I   N1  V   1.72860847  114.8   0.86    20.16367213 5.017873836
I   N1  V   2.133891213 115.7   0.84    23.07712358 3.930948522
I   N2  T   3.152019262 131.3   0.89    35.5848969  5.589698563
I   N2  T   3.367223676 138.7   0.87    34.05297654 2.730557232
I   N2  T   3.059409463 137.4   0.83    35.37992694 3.548049932
I   N2  V   1.71633507  112.3   0.93    34.09476427 5.25868398
I   N2  V   2.284833663 116.9   0.84    22.19728478 3.518505779
I   N2  V   1.866355607 113.6   0.86    29.02993798 5.014262016
II  N0  T   1.768065012 127.8   0.83    7.6010075   9.42999993
II  N0  T   3.250876694 129.4   0.83    29.23677503 27.91017246
II  N0  T   2.815832568 133.6   0.83    4.051675097 10.12918774
II  N0  V   3.891509434 109.1   0.88    5.469474969 9.770670085
II  N0  V   2.882145915 111.2   0.87    17.00061485 21.40077399
II  N0  V   4.128069071 113.7   0.88    12.9571096  37.50296115
II  N1  T   3.003514751 126 0.84    39.39306152 7.043527056
II  N1  T   3.134655188 129.2   0.85    11.4866755  21.51749579
II  N1  T   2.785986782 131.5   0.83    19.78519656 2.176659469
II  N1  V   3.089649674 107.5   0.88    17.32529262 12.99396947
II  N1  V   4.466019417 112.6   0.89    12.03083642 20.22446923
II  N1  V   3.1820755   116.1   0.84    12.63619614 12.65798269
II  N2  T   3.428280773 134.2   0.87    16.67590015 14.49664664
II  N2  T   4.430091185 139.8   0.85    36.47033184 12.18635248
II  N2  T   3.362380446 132.4   0.86    67.7182946  11.7089442
II  N2  V   3.672823219 111.6   0.9 24.5684152  13.5849653
II  N2  V   3.031651201 110.1   0.88    19.7549665  15.6015459
II  N2  V   3.198950088 108.7   0.88    20.86135738 14.60295017

其中F列是因子,V列是变量

让此数据框命名为“ df”。

首先,我使用pivot_longer包中的函数tidy verse将变量名作为列:

df %>% pivot_longer(
-c(F1,F2,F3),
names_to = "Variable",
values_to = "Value") -> df2

我想获得一张桌子:

ftable(df2, row.vars = c("Variable", "F3"), col.vars = c("F2", "F1"))

给出了我想要的表格类型:

                    F2 N0    N1    N2   
                    F1       I II  I II  I II
Variable F3                             
V1     T                      3  3  3  3  3  3
         V                      3  3  3  3  3  3
V2      T                      3  3  3  3  3  3
         V                      3  3  3  3  3  3
V3    T                      3  3  3  3  3  3
         V                      3  3  3  3  3  3
V4      T                      3  3  3  3  3  3
         V                      3  3  3  3  3  3
V5      T                      3  3  3  3  3  3
         V                      3  3  3  3  3  3

我在这里的问题是我要用平均值而不是计数(表中的数字3)作为值。有人知道怎么做吗?

我已经使用此代码计算出平均值:

df2_summary <- dplyr::summarise(df2_grouped,
                                     count = dplyr::n(),
                                     mean = round(mean(Value), 2),
                                     SE = round(sd(Value)/sqrt(count),2))

但是我不知道如何将df2_summary转换为上面的表格。

1 个答案:

答案 0 :(得分:1)

这会给您想要的结果吗?

n
k