当前位置: 首页 > news >正文

R语言手动绘制NHANSE数据基线表并聊聊NHANSE数据制作亚组交互效应表的问题(P for interaction)

美国国家健康与营养调查( NHANES, National Health and Nutrition Examination Survey)是一项基于人群的横断面调查,旨在收集有关美国家庭人口健康和营养的信息。
地址为:https://wwwn.cdc.gov/nchs/nhanes/Default.aspx
在这里插入图片描述
在既往的文章《Nhanes临床数据库挖掘教程2—基线表绘制(table1)》中,咱们已经介绍了tableone包绘制NHANES数据的基线表,今天咱们来介绍一下如何手动绘制NHANES数据的基线表,手动的好处就是一来可以加深你对操作的理解,二是比较灵活,tableone包输出的格式比较固定,例如你想把人数改成不加权的就需要手工计算,而且可以通过两种方法相互印证。
咱们继续使用文章《Nhanes临床数据库挖掘教程2—基线表绘制(table1)》中的数据为例子,先导入R包和数据

library(survey)
bc<-read.csv("E:/nhanes/nhanes.csv",sep=',',header=TRUE)

在这里插入图片描述
我介绍一下数据,SEQN:序列号,RIAGENDR, # 性别, RIDAGEYR, # 年龄,RIDRETH1, # 种族,DMDMARTL, # 婚姻状况,WTINT2YR,WTMEC2YR, # 权重,SDMVPSU, # psu,SDMVSTRA,# strata,LBDGLUSI, #血糖mmol表示,LBDINSI, #胰岛素( pmmol/L),PHAFSTHR #餐后血糖,LBXGH #糖化血红蛋白,SPXNFEV1, #FEV1:第一秒用力呼气量,SPXNFVC #FVC:用力肺活量,ml(估计肺容量),LBDGLTSI #餐后2小时血糖。
为了做出来后有对比,我按文章《Nhanes临床数据库挖掘教程2—基线表绘制(table1)》中对糖尿病进行了一个分段处理,OCTT小于7.8算是正常患者,7.8—11是糖尿病前期,大于11为糖尿病。

bc$oGTT2<-ifelse(bc$LBDGLTSI<7.8,1,ifelse(bc$LBDGLTSI>=11,3,2))

上面代码的意思是把小于7.8的分类为1,大于11的分类为3,其余分类为2

在这里插入图片描述
因为tableone包可以自动把分类变量转成因子,我们这里手动制作的话需要自己把分类变量转成因子

bc[,c("RIAGENDR", "RIDRETH1","DMDMARTL")] <- lapply(bc[,c("RIAGENDR", "RIDRETH1","DMDMARTL")], factor)

转成因子后,下面开始建立抽样调查函数svydesign,ids表示集群的意思,这里填入抽样单元SDMVPSU(PSU),如果没有的话填入1,strata = ~ SDMVSTRA,strata这里是分层的意思,这里填入SDMVSTRA,weights是权重的意思,参照别的大佬的意思,如WTINT2YR,WTMEC2YR,这两个权重就填入WTMEC2YR,data填入你的数据就可以了

bcSvy2<- svydesign(ids = ~ SDMVPSU, strata = ~ SDMVSTRA, weights = ~ WTMEC2YR,nest = TRUE, data = bc)

生成调查函数bcSvy2后咱们就可以进行计算了,这里我们生成一个按照oGTT2分类的基线表,就是不同血糖程度的基线值水平。
主要是使用survey包自带的函数来进行计算,计算连续的和分类的要分开计算,
咱们先来计算连续的主要是使用svyby这个函数来搭配计算,假设咱们想了解不同oGTT2的年龄分布基线

svyby(~RIDAGEYR, ~oGTT2, bcSvy2, svymean)

在这里插入图片描述
这样结果就出来了,可以看到和tableone包算出来的一模一样。(下图是tableone包算出来的)
在这里插入图片描述
如果想求可信区间,

svyby(~RIDAGEYR, ~ oGTT2, bcSvy2, svymean , vartype="ci")

在这里插入图片描述
如果咱们想按分位数来求

svyby(~RIDAGEYR, ~oGTT2, bcSvy2, svyquantile, quantiles=0.5,ci=TRUE,vartype="ci")

在这里插入图片描述
如果想求每组为未加权加权的人数

svyby(~RIDAGEYR, ~oGTT2, bcSvy2, unwtd.count, keep.var=FALSE)

在这里插入图片描述

接下来咱们看一下分类变量怎么计算,分类变量主要是使用svytable函数来计算,咱们这里以种族(RIDRETH1)为例子
svyby(~RIDRETH1, ~oGTT2, bcSvy2, svytotal,covmat=TRUE)

在这里插入图片描述
这里算出来的也和tableone包一模一样, 这样连续和分类变量的都算出来啦。间接印证了咱们使用tableone包计算是正确的,新手还是使用tableone包来计算容易点。

最后聊下近期,近期一直在写一键生成NHANSE数据亚组交互效应表的函数(P for interaction),但是出现一个小问题卡住了,就是就是在函数内部生成svyglm模型的时候,我们需要使用anova函数获取模型的P for interaction的值,但是这个时候R会提示design函数找不到,如下图所示。

在这里插入图片描述

这个问题卡了我好几天,实在没办法后面我写了封邮件问survey包的作者thomas教授这个问题怎么解决。thomas教授说这个survey包目前没法解决,他需要从新写anova.svyglm函数,有可能在新版本解决这个问题,但thomas教授给了我解决这个问题的方案。
为什么我要说这个东西,因为这个东西既然目前survey包目前没法解决,那么很多基于survey包anova.svyglm函数来实现算法的函数和R包就是错的。因为design函数只能在全局环境找到,在其他环境找不到。
这里我要提一下jstable包,很多粉丝和我提到了这个包,而且我看见有些博主也推荐了这个包,这个包在分析复查加权数据时就是用了anova.svyglm函数,因此你的数据一旦是多项交互它就会报错。而且这个包的逻辑和咱们平时就算交互效应的时候还是不一样的,咱们平时计算交互效应通常是:y=a+b+a*b
而jstable包的计算逻辑是y= a*b。这样计算出来的东西就完全不一样了。自己做的时候根据需求吧。

相关文章:

R语言手动绘制NHANSE数据基线表并聊聊NHANSE数据制作亚组交互效应表的问题(P for interaction)

美国国家健康与营养调查&#xff08; NHANES, National Health and Nutrition Examination Survey&#xff09;是一项基于人群的横断面调查&#xff0c;旨在收集有关美国家庭人口健康和营养的信息。 地址为&#xff1a;https://wwwn.cdc.gov/nchs/nhanes/Default.aspx 在既往的…...

C++引用(起别名)

0.引用的概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;从语法的角度来说编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。比如说你的名字和外号指的都是你本人。 void Test() {int a 10;int& ra …...

Ubuntu:VS Code IDE安装ESP-IDF【保姆级】(草稿)

物联网开发学习笔记——目录索引 Visual Studio Code&#xff08;简称“VS Code”&#xff09;是Microsoft向开发者们提供的一款真正的跨平台编辑器。 参考&#xff1a; VS Code官网&#xff1a;Visual Studio Code - Code Editing. Redefined 乐鑫官网&#xff1a;ESP-IDF …...

子序列(All in All, UVa 10340)rust解法

输入两个字符串s和t&#xff0c;判断是否可以从t中删除0个或多个字符&#xff08;其他字符顺序不变&#xff09;&#xff0c;得到字符串s。例如&#xff0c;abcde可以得到bce&#xff0c;但无法得到dc。 解法 use std::io;fn main(){let mut buf String::new();io::stdin().…...

AI时代,当项目经理遇到ChatGPT,插上腾飞的翅膀!

文章目录 一、 ChatGPT 在项目管理中的应用1. 任务分配和跟踪2. 风险管理3. 沟通和协作 二、 ChatGPT 在项目管理中的优势1. 高效性2. 可靠性3. 灵活性 三、 ChatGPT 在项目管理中的应用场景1. 智能会议2. 智能文档3. 智能报告 结语AI时代项目经理成长之道&#xff1a;ChatGPT让…...

Springboot项目中加载Groovy脚本并调用其内部方代码实现

前言 项目中部署到多个煤矿的上&#xff0c;每一种煤矿的情况都相同&#xff0c;涉及到支架的算法得写好几套&#xff0c;于是想到用脚本实现差异变化多的算法&#xff01;一开始想到用java调用js脚本去实现&#xff0c;因为这个不需要引入格外的包&#xff0c;js对我来说也没…...

为什么要做数据可视化

在当今信息爆炸的时代&#xff0c;数据已成为个人和企业最宝贵的资产之一。然而&#xff0c;仅仅拥有大量的数据并不足以支持明智的决策。数据可视化&#xff0c;作为一种将数据转化为图形形式的技术和方法&#xff0c;可以帮助我们更好地理解和分析数据&#xff0c;从而更准确…...

0基础学习VR全景平台篇 第108篇:全景图细节处理(下,航拍)

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; &#xff08;调色前图库&#xff09; &#xff08;原图-大图&#xff09; 一、导入文件 单击右下角导入按钮&#xff0c;选择航拍图片所在文件夹&#xff0c;选择图片&#xff0…...

linux查看文件内容命令more/less/cat/head/tail/grep

1.浏览全部内容more/less 文件&#xff1a; more&#xff1a;可以查看文件第一屏的内容&#xff0c;同时左下角有一个显示内容占全部文件内容的百分比&#xff0c;空格键会显示下一屏的内容&#xff0c;直到文件末尾 [rootmaster data]# more file1less&#xff1a;相较于mor…...

VBA窗体跟随活动单元格【简易版】

本篇博客与以往的风格不同&#xff0c;先上图再讲解。 这个效果是不是很酷&#xff0c;VBA窗体&#xff08;即UserForm&#xff0c;下文中简称为窗体&#xff09;可以实现很多功能&#xff0c;例如&#xff1a;用户输入数据&#xff0c;提供选项等等。如本博客标题标注&#…...

epiiAdmin框架注意事项

1&#xff0c;epiiAdmin文档地址&#xff1a; 简介/安装 EpiiAdmin中文文档 看云 2&#xff0c;项目性想新建模块 composer.json文件——autoload选项——psr-4下增加模块名称&#xff0c;然后执行composer update命令。 "autoload": {"psr-4": {"…...

数据仓库与ETL

什么是数据仓库 一种用于存储和管理数据的系统&#xff0c;提供一种统一方式&#xff0c;将不同来源、不同方式、不同时间的数据集成在一起。 数据仓库结构 主题域&#xff1a;一个特定领域的数据集&#xff0c;比如营销、销售、客户、库存等。 维度&#xff1a;定义数据的不…...

Centos7安装Gitlab--gitlab--ee版

1 安装必要依赖 2 配置GitLab软件源镜像 3 下载安装GitLab 4 查看管理员root用户默认密码 5 登录GitLab 6 修改密码 7 gitlab相关命令 1 安装必要依赖 sudo yum install -y curl policycoreutils-python openssh-server perl sudo systemctl enable sshd sudo systemctl sta…...

主题教育问题清单及整改措施2023年-主题教育对照六个方面个人剖析材料

无论前方路途多么坎坷&#xff0c;都要保持内心的坚定和勇敢。生活中没有什么不可战胜的困难&#xff0c;只有我们是否愿意去面对和克服。要相信自己的能力&#xff0c;相信自己拥有足够的智慧和力量去应对一切挑战 每一次的努力都不会白费&#xff0c;每一次的奋斗都是在为自己…...

php新手实战:自定义书源下载api

网上有很多第三方小说网站提供小说下载&#xff0c;而下载的过程无非就是搜索书籍&#xff0c;然后找到下载链接点击下载即可。只是类似这种“良心”的小说网站实在是太少。大多数仅支持在线阅读。而如今&#xff0c;我却要利用这种为数不多的“良心”小说站点提供的书源来作为…...

数据结构 - 5(二叉树7000字详解)

一&#xff1a;二叉树的基本概念 1.1树形结构 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 注意&am…...

xshell使用方法(超详细)

一、安装 下载最新版安装即可&#xff0c;不需要做任何配置。 安装完成后输入账号名和邮箱&#xff0c;确认后邮箱会收到一条确认邮件&#xff0c;将里面的链接点开即可免费使用&#xff08;仅安装后会出现&#xff0c;认证后以后再打开不需要重复操作&#xff0c;如果重新安…...

【数据库系统概论】第三章关系数据库标准语言SQL

选择题会考&#xff1a; 1.数据查询&#xff1a; SELECT&#xff1a;用于选择需要查询的列和行。 FROM&#xff1a;用于指定要查询的表。 WHERE&#xff1a;用于指定查询条件。 GROUP BY&#xff1a;用于按照指定的列对结果进行分组。 HAVING&#xff1a;用于指定分组条件…...

云计算是什么?学习云计算能做什么工作?

很多人经常会问云计算是什么&#xff1f;云计算能干什么&#xff1f;学习云计算能做什么工作&#xff1f;其实我们有很多人并不知道云计算是什么&#xff0c;小知今天来给大家讲讲学习云计算能做什么。 中国的云计算行业目前正处于快速发展阶段&#xff0c;随着互联网和数字化…...

ES6 -- 模块化(CommonJS、AMD、ES Module)

模块模式 将代码拆分成独立的块&#xff0c;然后再将这些块连接起来可以通过模块模式来实现。这种模式背后的思想很简单&#xff1a;把逻辑分块&#xff0c;各自封装&#xff0c;相互独立&#xff0c;每个块自行决定对外暴露什么&#xff0c;同时自行决定引入执行哪些外部代码…...

c# xml 参数读取读取的简单使用

完整使用之测试参数的读取&#xff08;xml&#xff09; 保存一个xml文档&#xff08;如果没有就会生成一个默认的 里面的参数用的是我们默认设置的&#xff09;&#xff0c;之后每次更改里面的某项&#xff0c;然后保存 类似于重新刷新一遍。 这里所用的xml测试参数前面需要加…...

gym原来是这样用的

今天down了一个深度强化学习的程序&#xff0c;但是试来试去总是跑不成功&#xff0c;第一句就出问题了 env gym.make("clusterEnv-v0").unwrapped总是报没有该环境&#xff0c;思想半天&#xff0c;然后发现这是自己写的环境&#xff0c;需要到gym中去注册才能使用…...

百度SEO优化技巧与布局(提升网站排名的5种有效方法)

网站SEO关键词介绍&#xff1a; SEO&#xff08;SearchEngineOptimization&#xff09;即搜索引擎优化&#xff0c;是通过一系列技术手段和策略&#xff0c;让网站在搜索引擎中获得更好的排名和流量。关键词是SEO优化的重要组成部分&#xff0c;通过关键词布局合理&#xff0c…...

文案配音软件哪个好?(适合新手使用)

随着短视频的逐渐普及&#xff0c;视频博主越来越多&#xff0c;所以很多朋友也期待成为视频博主。但是&#xff0c;如果你想成为一个有名的视频博主&#xff0c;你需要在很多层面上比别人做得更好。其中之一就是视频文字的配音。相信大部分人都没有配音的技巧&#xff0c;所以…...

excel映射xml方法

excel映射xml方法 创建xml模板 新建一个文本文件&#xff0c;编写模板并命名为xxx.xml <?xml version"1.0" encoding"UTF-8"?> <root><item ID""><surname></surname><man></man><woman>&…...

2023/10/15

文章目录 1.uniapp之Vue2升Vue3值得注意的几点1.1 页面生命周期的使用1.2 引入资源的方式 2. 浏览器本地存储之Cookie和webStorage3. CSS变量 var()的用法4. CSS之实现线性渐变背景5. 图片无法和文字对齐的正确解决方案6. 使用正则处理接口返回的富文本内的图片7. transition实…...

Linux系统中如何开启和配置OpenGauss数据库的远程连接

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合…...

【Docker】Docker网络及容器间通信详解

目录 背景 默认网络 1、bridge 网络模式 2、host 网络模式 3、none 网络模式 4、container 网络模式 自定义网络 容器间网络通信 IP通信 Docker DNS server Joined容器 前言 本实验通过docker DNS server和joined 容器两种方法实现Docker容器间的通信。Docker容器间…...

TikTok国际版 使用特网科技Bluestacks模拟器安装方法

特网科技Bluestacks模拟器主机 桌面自带Bluestacks模拟器 TikTok国际版Bluestacks模拟器搜索tiktot 登录google应用商店-安装TikTok 安装过程可能需要3-5分钟不等-配置过低可能会导致安装失败&#xff0c;建议升级更高内存。 安装完成-打开 安装成功APP-我的游戏查看 打开国际版…...

【Hello Algorithm】暴力递归到动态规划(四)

动态规划的数组压缩技巧 - 机器人走格子问题 题目是leetcode62题目原题 表示如下 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中…...

葡萄酒公司网站建设/如何免费制作网站

Mysql的事务和锁相信大家都很熟悉&#xff0c;其实redis也是有的&#xff0c;只是因为redis的事务比较鸡肋很少被人谈起&#xff0c;至于为什么鸡肋下面我们就会见到。同时redis的分布式锁还是非常值得我们了解一下的。 文章目录什么是事务事务基本操作错误处理锁分布式锁死锁什…...

中牟网站制作/系统优化的方法

如何在电脑上面建立Python工作环境&#xff1f;本文会解答这个问题。Python是一门计算机编程语言&#xff0c;通过给计算机下达精确的指令以完成相应的任务或者事情。人类掌握Python后&#xff0c;就可以利用这个工具告诉计算机给人类做什么以及怎么做。人类想要学习和利用Pyth…...

wordpress插件设置/系统优化助手

为什么80%的码农都做不了架构师&#xff1f;>>> 今天心情比较好&#xff0c;就把自己的思想、理解画个比喻图什么的&#xff0c;给大家分享分享&#xff0c;觉得有些收获&#xff0c;就帮我点一下推荐&#xff0c;觉得无聊&#xff0c;就不看内容&#xff0c;看看图…...

wordpress苏醒/推广赚钱的项目

明天没有具体的任务 全员讨论Beta版改进的问题转载于:https://www.cnblogs.com/WWW-Buaa/archive/2012/11/13/2767314.html...

公司备案查询网站备案/单页网站怎么优化

一.分布式锁在单机场景下&#xff0c;可以使用语言的内置锁来实现进程同步。但是在分布式场景下&#xff0c;需要同步的进程可能位于不同的节点上&#xff0c;那么就需要使用分布式锁。阻塞锁通常使用互斥量来实现&#xff1a;互斥量为 0 表示有其它进程在使用锁&#xff0c;此…...

简单的企业网站的主页/什么软件可以免费引流

【前言】 本文译自《Classic Shell Scripting》 UNIX的安全性一向是恶名在外&#xff0c;几乎从每个角度看&#xff0c;UNIX系统都有或多或少的安全性争议&#xff0c;不过这些大部分都是系统管理者应该担心的。下面列出了一长串“诀窍”&#xff0c;提醒你编写Shell脚本应…...