首发scitb包,一个为制作统计表格而生的R包

news2024/11/30 7:42:51

目前,本人写的第3个R包scitb包已经正式在R语言官方CRAN上线,scitb包是一个为生成专业化统计表格而生的R包。
可以使用以下代码安装

install.packages("scitb")

在这里插入图片描述
scitb包对我而言是个很重要的R包,我的很多想法需要靠它做平台来实现,本来没打算写这么快,但是有点原因所以提前了。写scitb包的目是用它生成各种统计表格,但目前只有一个scitb1函数,只能生成基线表一,看起来有点弱,但是相信在我的不断改进下将来一定是个强大的R包。
有时候我在想已经有tableone包这么优秀的基线表R包了,我还需要费劲再写一个吗?但是我还是把它写出来了,对于scitb包来说,绘制基线表1只是它附带的一个小功能,我也是有个小目标的,就是让它能一键生成表一到表五我们论文的各种表格,然后再能生成图片的话就更完美了。其实我前期也做了一些工作了,如文章《scitb5函数1.7版本(交互效应函数P for interaction)发布----用于一键生成交互效应表、森林图》中scitb5函数,为什么起这么怪的名字,当时就是考虑写了这个包后,它是用来生成表五的,本来按照scitb5函数的复杂程度足以做成个包了,为什么没有做,就是打算附在scitb包上的. 还有文章《cox回归RCS阈值函数cut.tab1.3发布》中的cut.tab函数,目前逻辑回归和线性回归都写好了,在将来会改成scitb4函数,加上现在的scitb1函数已经已经有3个函数了。将来继续完善它。
下面咱们来演示一下咱们使用scitb包来绘制一个咱们论文需要的基线表一
scitb包自带有我既往的早产数据,咱们直接从包调用

library(scitb)
bc<-prematurity

在这里插入图片描述
这是一个关于早产低体重儿的数据(公众号回复:早产数据,可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产低体重儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数bwt 新生儿体重数值

咱们先来个分类变量的
假设咱们想race为研究目标,因为它是分类变量,咱们最好把它转成因子,因为scitb包有一定对数据类型的判定能力,如果你的分类变量类别大于5个,而你不转成因子的话,它可能自动判定为连续变量,处理方式不一样的,所以这里最好自己设定一下。

bc$race<-as.factor(bc$race)

接下来就是定义全部变量,分类变量和分层变量,这和tableone包一模一样,如果你会使用tableone包,使用scitb包起来完全无压力。

allVars <-c("age", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui")
strata<-"race"

一键生成统计结果

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

在这里插入图片描述
这样结果就生成了,我按论文格式对界面进行设定,这样你几乎不怎么用调整就可以生成数据表一了,省了点时间。如果有非正态数据怎么办,假设lwt为非正态分布数据,咱们通过nonnormal这个参数给它定义一下

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc,nonnormal =c("lwt"))

在这里插入图片描述
我们可以看到lwt这里被改成使用中位数和四分位数表示了。
接下来看看咱们算得对不对,使用tableone包来比较一下

library(tableone)
allVars <-c("age", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui")
strata<-"race"
tab2 <- CreateTableOne(vars = allVars, factorVars=fvars,strata = strata, data = bc)
print(tab2)#输出表格,tableone包

在这里插入图片描述
对比两个结果,一模一样,所以大家可以完全放心,我可没有抄袭tableone包,虽然结果一样,但是我们的算法构架完全不一样的,它是使用lapply()函数来跑结果的,而我是使用for循环的。

在这里插入图片描述
Scitb包格式更加符合论文发表格式,刚才说了分类变量的制表方法,现在来说下连续变量,假设我们研究的是年龄变量age

allVars <-c("race", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt")
fvars<-c("smoke","ht","ui","race")
strata<-"age"

生成结果

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

在这里插入图片描述
咱们可以看到年龄被默认分层3组,然后得出基线表,还给出了具体分割值,表明从14到20到25到45进行了分割,下面的警告不用理会,咱们没有关闭警告,算出来和tableone包一样的。

在这里插入图片描述
如果你想分层更多组,可以使用num这个制表来设定。假设咱们想生成4组

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc,num=4)

在这里插入图片描述
这里有个制表小技巧回到前面的连续变量里,咱们可以把分层变量加进去,快速制表

allVars <-c("age", "lwt",  "smoke", "ptl", "ht", "ui", "ftv", "bwt","race")
fvars<-c("smoke","ht","ui","race")
strata<-"age"

#一键生成统计结果

out<-scitb1(vars=allVars,fvars=fvars,strata=strata,data=bc)

在这里插入图片描述
把结果保存

write.csv(out,file = "1.csv",row.names = F)

打开看一下

在这里插入图片描述
把它拷贝入word

在这里插入图片描述
把它整理一下,这样一个专业表格就做好啦。

在这里插入图片描述
是不是又快又好呀。

在这里插入图片描述
scitb1比起tb1包功能远远比不上,主打一个简单实用,虽然没有tb1包这么强大的功能,但是可以快速出表,而且增加了连续变量的处理,还是有点优势的吧。之后我还打算出个视频介绍怎么基于scitb包快速生成表一,欢迎观看。

最后原创声明一下,scitb包遵循GPL-3协议,你可以自由使用、播散和修改,但是用于商业用途需要得到我的同意和授权。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1165866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

bean product not found within scope之解决方法

错误原因&#xff1a; 获取bean中的商品信息时报错 解决方法&#xff1a; 修改为下面代码即可&#xff1a; <jsp:useBean id"product" class"com.model.Product" scope"session"></jsp:useBean>

TP858 3BSE018138R1 具有高性能CPU的工业PC技术

TP858 3BSE018138R1 具有高性能CPU的工业PC技术 为了充分利用新电脑的扩展图形功能&#xff0c;如DirectX&#xff0c;Beckhoff Automation重新设计了TwinCAT automation软件套件中的Scope工具。这为TwinCAT用户在灵活的软件环境中提供了一系列令人印象深刻的测量技术。改进的…

泊车功能专题介绍 ————智能泊车辅助系统性能要求及试验方法(GB/T 41630-2022)

文章目录 术语系统状态转换及信息提示系统非激活状态停车位搜索状态泊车辅助状态系统退出条件系统故障响应 性能要求避撞要求挡位调整次数要求平行停车位&#xff08;空间车位&#xff09;结束位置垂直停车位&#xff08;空间车位&#xff09;结束位置平行停车位&#xff08;线…

C++标准模板(STL)- 类型支持 (类型属性,is_pod,is_trivially_copyable,is_standard_layout)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库

背景介绍 Apache Doris是一个基于MPP架构的易于使用&#xff0c;高性能和实时的分析数据库&#xff0c;以其极高的速度和易用性而闻名。海量数据下返回查询结果仅需亚秒级响应时间&#xff0c;不仅可以支持高并发点查询场景&#xff0c;还可以支持高通量复杂分析场景。 这些都…

如何使用Scrapy提取和处理数据

目录 一、安装和设置Scrapy 二、创建爬虫 三、提取数据 四、处理数据 五、存储数据 六、进阶操作 七、注意事项 总结 Scrapy是一个强大且灵活的Python库&#xff0c;用于创建网页爬虫&#xff0c;提取和处理数据。本文将为您深入讲解如何使用Scrapy进行数据处理&#x…

AI正在改变人类社会 - 内容行业的衰落

现在的 AI 技术&#xff0c;每天都在进化。我有一种感觉&#xff0c;普通人大概没意识到&#xff0c;它马上就要改变人类社会了。 历史上&#xff0c;这种事一再发生。在你不知不觉中&#xff0c;某些大事件悄悄酝酿&#xff0c;突然就冲击到了你的生活&#xff0c;将你的人生…

TensorRT加速的原因:量化+网络结构优化

文章目录 1. TensorRT 简介2. TensorRT 加速的原理量化网络结构优化 3. TensorRT 的 工作流程TensorRT引擎的构建&#xff1a;BuildTensorRT引擎的推理&#xff1a;Infer 1. TensorRT 简介 TensorRT可以帮助你把训练好的AI模型&#xff0c;部署到边端Nvidia的设备&#xff0c;…

结合组件库实现table组件树状数据的增删改

如图所示&#xff0c;可以实现树状数据的新增子项&#xff0c;新增平级&#xff0c;删除。主要用到了递归 代码&#xff1a; <template><el-table :data"tableData" style"width: 100%; margin-bottom: 20px" row-key"id" border def…

大促期间如何监测竞品数据

无论在什么时候&#xff0c;竞品的数据都是品牌非常关注的&#xff0c;大促当然也不例外&#xff0c;所以准确监测到竞品数据应该如何分析也很关键&#xff0c;通过分析竞品&#xff0c;品牌可以获取非常多有价值的内容&#xff0c;如竞品王牌产品的分析、行业分析报告等。 力维…

JAVA毕业设计108—基于Java+Springboot的OA办公自动化人事管理系统(源码+数据库)

基于JavaSpringboot的OA办公自动化人事管理系统(源码数据库)108 一、系统介绍 本系统分为员工、部门经理、人事、管理员四种角色(角色菜单可以自行分配) 用户&#xff1a; 登录、考勤管理、申请管理、任务管理、日程管理、工作计划管理、文件管理、笔记管理、邮件管理、通讯…

如何在 Photoshop 中制作水晶效果

如何在 Photoshop 中仅使用一些智能滤镜快速轻松地制作水晶效果 1.如何在 Photoshop 中创建快速背景 步骤1 首先&#xff0c;让我们从一个新的画布开始&#xff0c;使用颜色填充图层填充柔和的紫罗兰色。通过选择图层并右键单击 > 转换为智能对象&#xff0c;将该颜色填充…

什么是Node.js的流(stream)?它们有什么作用?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

设计模式第一课-单例模式(懒汉模式和饿汉模式)

单例模式 个人理解&#xff1a;单例模式实际就是通过类加载的方式获取到一个对象&#xff0c;并且保证这个对象在使用中只有一个&#xff0c;不允许再次被创建 一、懒汉模式 1、懒汉模式的基础写法 代码解释&#xff1a; &#xff08;1&#xff09;、编写LazySingleton类的…

图解系列--路由器和它庞大的功能

03.01 何为路由器 路由器是指主要负责 OSI参考模型中网络层的处理工作&#xff0c;并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网&#xff0c;也可以称为广播域。此外&#xff0c;现在的路由器还会搭载其他各种各样的功能。 0…

3D人像手办定制业务再掀热潮,这一次有怎样的革新?(方法篇)

最近&#xff0c;3D真人手办热潮再起&#xff0c;最出圈的一次当属亚运会的3D打印元宇宙体验舱里面各国运动员带火的真人手办定制项目。作为3D技术推广者&#xff0c;博雅仔也在后台接受了很多朋友的询问—— ◆ 技术已经成熟了吗&#xff1f; ◆ 个人定做3D真人手办市场价格…

[机缘参悟-116] :世间的四张大网以及新型的第五张网,以及在网中流动的内容

目录 一、第一张网&#xff1a;人际网&#xff08;人&#xff09;》流动是人的知情意行 1.1 什么是人际网 1.2 人际网中流动是人的知情意行 1.2.1 在人际网中&#xff0c;流动的是人与人之间的各种信息、情感和资源。 1.2.2 在人际网中流动的是人的知情意行 1.2.3 在人际…

基于JAVA+SpringBoot+Vue的前后端分离的大学生创新作品审核平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着大学教育的发展&a…

实战演练——拦截史迪仔广播

目录 目录 1.MainActivity 2.MainActivity2 3.MyHelper 4.OutCallReceiver 5.activity_main.xml 6.activity_main2.xml 7.item.xml 8.themes.xml 9.项目代码布局情况 10.运行情况展示 11.该项目常见报错以及解决方法 完成一个拦截拨号的app&#xff0c;包含以下功…

Rust 语言和 select 库的编写程序

使用 Rust 语言和 select 库的下载器程序&#xff0c;用于下载 视频。 首先&#xff0c;我们需要导入 select 库。select 库是一个用于处理多个输入/输出流的 Rust 库。它提供了一个函数&#xff0c;可以让我们等待多个文件描述符&#xff08;如网络套接字&#xff09;可读或可…