微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何打印具有均值和标准误差的表格

如何解决如何打印具有均值和标准误差的表格

我正在尝试报告一个完整的表格,其中包含我正在处理的数据集的描述性统计数据,包括平均值、括号中的标准误差和分组变量。数据集如下(我在这里报告感谢dput函数)。

> dput(dati)
structure(list(id = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27),sex = structure(c(1L,1L,NA,2L,2L),.Label = c("F","M"),class = "factor"),d8 = c(21,23.5,21.5,16.5,24.5,25.5,27.5,22.5,22),d10 = c(20,20.5,28,21.5),d12 = c(21.5,29,26.5,27,31,23.5
    ),d14 = c(23,19.5,28.5,31.5,29.5,30,25)),row.names = c(NA,-27L),spec = structure(list(
    cols = list(id = structure(list(),class = c("collector_double","collector")),sex = structure(list(),class = c("collector_character",d8 = structure(list(),d10 = structure(list(),d12 = structure(list(),d14 = structure(list(),"collector"))),default = structure(list(),class = c("collector_guess",skip = 1L),class = "col_spec"),class = c("spec_tbl_df","tbl_df","tbl","data.frame"))

我能够绘制从 Rcmdr 库自动生成的正确代码,尽管它返回了一个带有均值和标准差的表格

#####Summary table of sample characteristics#####
CatTable <- CreateCatTable(vars = c("sex"),strata="sex",data=dati_locf)
matCatTable <- print(CatTable,printToggle = FALSE,showAllLevels = TRUE,exact=c("sex"),smd = FALSE)
matCatTable <- matCatTable[,colnames(matCatTable)!="test"]
matCatTable <- cbind(Factor=row.names(matCatTable),matCatTable)
ContTable <- CreateContTable(vars = c("d8","d10","d12","d14"),data=dati_locf)
matContTable <- print(ContTable,explain = FALSE,smd 
  = FALSE)
matContTable <- matContTable[,colnames(matContTable)!="test"]
matContTable <- cbind(level="",matContTable)
matContTable <- cbind(Factor=row.names(matContTable),matContTable)
FinalTable <- as.matrix(matCatTable)
tempStrata <- attributes(FinalTable)[[2]][2]
FinalTable <- rbind(FinalTable,matContTable)
attributes(FinalTable) <- c(list(dim=attributes(FinalTable)[[1]]),list(dimnames=c(attributes(FinalTable)[[2]][1],tempStrata)))
colnames(FinalTable)[2] <- "Group"
colnames(FinalTable)[colnames(FinalTable)=="p"] <- "p.value"
row0 <- colnames(FinalTable)
row1 <- FinalTable[1,]
row1 <- matrix(row1,nrow=1)
colnames(row1) <- row0
FinalTable <- FinalTable[which(rownames(FinalTable)!="n"),]
FinalTable <- rbind(n=row1,FinalTable)
FinalTable <- rbind(row0,FinalTable)
row0 <- rep("",length(colnames(FinalTable)))
row0[3] <- "sex"
FinalTable <- rbind(row0,FinalTable)
finaltable_dataframe_print(FinalTable)
write.table(FinalTable,"clipboard",sep = "    ",row.names = FALSE,col.names=FALSE)

我怎么能得到这样的项目,只是用标准误差代替标准偏差?

解决方法

编写您自己的 se 函数,然后将其添加到 CreateContTable 参数中。这是一种方法:

se = function(x) sd(x)/sqrt(sum(!is.na(x)))

ContTable <- CreateContTable(
vars = c("d8","d10","d12","d14"),strata="sex",data=dati_locf,funcAdditional = list(se=se)
)

summary(ContTable) #Shows you se is included in output

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。