导出R中的重复表

dz6r00yl  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(73)

我需要做一个“自动”的,重复的分析(循环分析?),可以很容易地导出。
我要分析一个包含很多句子的满意度调查,每个参与者都会用一个数字系统回答,从1(我一点也不满意)到5(我很满意)。
每个陈述代表一个项目,每个项目包含在一个维度中。该满意度评估模型基于一个理论模型,该模型有5个维度,每个维度包含4到6个项目,每个项目只能在一个维度中。
我们的想法是比较每个项目和每个维度的平均得分:

(score dimension = sum (items))

字符串
我认为我的问题是多方面的,但我想大致导出几个这种类型的表:

Dimensions  Lieu 1  Lieu 2  Lieu 3
N   Score moyen N   Score moyen Significativité (versus Lieu 1) N   
Score 
moyen   Significativité (versus lieu 2)
Réactivité  322 4,39    181 4,24    *   170 4,24    *
Le temps d'attente  338 4,46    188 4,30    *   176 4,28    *
L’attention portée  325 4,35    187 4,29    ns  172 4,16    *
différence significative au seuil 1%, ** différence significative au 
seuil 5%, * différence significative au seuil 10%, ns différence non 
significative.


正确的检验是Wilcoxon / Mann Whitney检验(非正态性由Shapiro Wilk检验验证)。
我尝试了几件事:

  • A适用于平均分数,但我无法提取“N”(或NA),当我计算它们
  • 一个可以提取尽可能完整的表格,但我仍然没有N,Wilcoxon检验不允许知道比较哪些模态(用kruskal.test完成)。此外,当我想使用这个检验时,它将所有平均值转换为中位数,因为变量不遵循正态分布。
  • 使用write.table导出似乎可以工作:
VARIABLES SUIVENT UNE LOI NORMALE ?
temps_attente_1 <- subset(enquete2, lieux == "Lieu1",temps_attente)
temps_attente_2 <- subset(enquete2, lieux == "Lieu2", temps_attente)
shapiro.test(temps_attente_1$temps_attente)
shapiro.test(temps_attente_2$temps_attente)

TEST DE WILCOXON / MANN WHITNEY
temps_attente_1w <- as.numeric(temps_attente_1 [,1])
temps_attente_2w <- as.numeric(temps_attente_2 [,1])
wilcox.test(temps_attente_1w, temps_attente_2w)

CALCUL DES MOYENNES PAR SOUS GROUPE DE TEMPS ATENTE
m=tapply(enquete2$temps_attente, enquete2$lieux, mean, na.rm=TRUE)
m
          Lieu 1             Lieu 2             Lieu 3 
          4.058894           4.131250           4.283333 

CREATETABLEONE 
library(tableone)
library(survival)
dput(names(enquete2))
vars_tot <- c("dim_reactivite", "temps_attente", "attention", "lieux")
tab_1 <- CreateTableOne(vars=vars_tot, strata= "lieux", data=enquete2, testNonNormal = kruskal.test)
tab_1

                          Stratified by lieux
                           Lieu1         Lieu2         Lieu3       p  

    test
  n                             245            92            41                          
  dim_reactivite (mean (sd))   4.06 (0.67)   4.13 (0.43)   4.28 (0.58)         0.144     
  temps_attente (mean (sd))    3.84 (1.00)   3.27 (1.00)   4.11 (0.84)        <0.001     
  attention (mean (sd))        4.22 (0.86)   4.45 (0.74)   4.26 (0.78)         0.074     
  lieux (%)                                                                <0.001     
 Lieu1                     245 (100.0)     0 (  0.0)     0 (  0.0)                  
 Lieu2                       0 (  0.0)    92 (100.0)     0 (  0.0)                  
 Lieu3                       0 (  0.0)     0 (  0.0)    41 (100.0) 

tab_2 <- print(tab_1$ContTable, smd=TRUE, showAllLevels=TRUE, quote=FALSE, noSpaces=TRUE)
                              Stratified by lieux
                               Lieu1       Lieu2       Lieu3       p      test    SMD
  n                            245         92          41                                  
  dim_reactivite (mean (sd))   4.06 (0.67) 4.13 (0.43) 4.28 (0.58)        0.144       0.263
  temps_attente (mean (sd))    3.84 (1.00) 3.27 (1.00) 4.11 (0.84)        <0.001      0.588
  attention (mean (sd))        4.22 (0.86) 4.45 (0.74) 4.26 (0.78)        0.074       0.199

variante avec variables non normales
items <- c("dim_empathie", "horaires_rec", "proximite_rec", "non_jugement_rec", "tout_dire_rec")
tab_2 <- print(tab_1$ContTable, nonnormal= items, smd=TRUE, showAllLevels=TRUE)
                                 Stratified by lieux
                                  Lieu1             Lieu2             Lieu3             p       test     SMD
  n                               245               92                41                                      
  dim_reactivite (median [IQR])   4.25 [3.69, 4.50] 4.25 [3.75, 4.25] 4.25 [3.81, 4.75]   0.258 nonnorm  0.263
  temps_attente (median [IQR])    4.00 [3.00, 5.00] 3.00 [3.00, 4.00] 4.00 [3.00, 5.00]  <0.001 nonnorm  0.588
  attention (median [IQR])        4.00 [4.00, 5.00] 5.00 [4.00, 5.00] 4.00 [4.00, 5.00]   0.080 nonnorm  0.199

EXPORT DANS UN TABLEAU EXCEL
write.table(cbind(VARIABLES=row.names(tab_2), tab_2), file="U:/HAITI/EVENEMENTS/2018/2018_01_29_ENQUETE_SATISFACTION/test2.xls",dec=",", row.names=F, col.names=TRUE, sep ="\t")

2izufjch

2izufjch1#

这里有一些你可以尝试的项目。
1.我有一个这样组织的框架(myDF_sans_deletion)(这只是一个小示例):

Protein  Condition  Optical_Density  Replicate
Pch1     RR      0.6809166667     Replicate_1
Pch2     RR      0.8679166667     Replicate_1
Pch3     RR      1.2815166667     Replicate_1
Pch4     RR      0.6538166667     Replicate_1
Pch5     RR      0.4396166667     Replicate_1
Ggle     RR      0.9845166667     Replicate_1
TemP     RR      1.3857166667     Replicate_1
TemP     RRΔl    1.9347           Replicate_1
Pch1     RRΔl    2.1332           Replicate_1
Pch2     RRΔl    2.3168           Replicate_1
Pch3     RRΔl    2.2212           Replicate_1
Pch4     RRΔl    2.0262           Replicate_1
Pch5     RRΔl    0.5013           Replicate_1

字符串
如果我想找到Optical_Density列的max、mean、variance、standard deviation和standard deviation,我可以用这种方式操作该框架,并将其保存到一个名为stats_sans_deletion的新框架中。

stats_sans_deletion <- ddply(myDF_sans_deletion, .(Protein, Condition), summarize, max_OD = max(Optical_Density), mean_OD=mean(Optical_Density), variance_OD=var(Optical_Density), SD_OD=sd(Optical_Density), SE_OD=sd(Optical_Density)/sqrt(length(Optical_Density)))


1.如果我有兴趣做一些统计测试,我可以做以下事情:

dt_result = myDF_sans_deletion %>% group_by(Protein) %>% do(tidy(t.test(Optical_Density~Replicate, data=., var.equal=F)))


1.如果你对na.rm=T有问题,考虑把它们从你原来的框架中删除,然后继续你想做的事情。
同样,您需要对此进行一些尝试,并且有不止一种方法可以做一些事情。

相关问题