我需要做一个“自动”的,重复的分析(循环分析?),可以很容易地导出。
我要分析一个包含很多句子的满意度调查,每个参与者都会用一个数字系统回答,从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")
型
1条答案
按热度按时间2izufjch1#
这里有一些你可以尝试的项目。
1.我有一个这样组织的框架(myDF_sans_deletion)(这只是一个小示例):
字符串
如果我想找到Optical_Density列的max、mean、variance、standard deviation和standard deviation,我可以用这种方式操作该框架,并将其保存到一个名为stats_sans_deletion的新框架中。
型
1.如果我有兴趣做一些统计测试,我可以做以下事情:
型
1.如果你对na.rm=T有问题,考虑把它们从你原来的框架中删除,然后继续你想做的事情。
同样,您需要对此进行一些尝试,并且有不止一种方法可以做一些事情。