使用tbl_summary创建带有标签的摘要统计信息

如何解决使用tbl_summary创建带有标签的摘要统计信息

我已将Stata(dta)文件读入R,数据片段如下所示:

 short
# A tibble: 200 x 5
            q4_1          q4_2          q4_3          q4_4 treatment_cur
       <dbl+lbl>     <dbl+lbl>     <dbl+lbl>     <dbl+lbl> <chr>        
 1 NA(z)         NA(z)         NA(z)         NA(z)         Control      
 2 NA(z)         NA(z)         NA(z)         NA(z)         Control      
 3     1 [1.Yes]     0 [0.No]      0 [0.No]      1 [1.Yes] Treatment    
 4     0 [0.No]      0 [0.No]      1 [1.Yes]     0 [0.No]  Control      
 5     0 [0.No]      0 [0.No]      0 [0.No]      1 [1.Yes] Control      
 6 NA(z)         NA(z)         NA(z)         NA(z)         Control      
 7     1 [1.Yes]     1 [1.Yes]     1 [1.Yes]     1 [1.Yes] Control      
 8 NA(z)         NA(z)         NA(z)         NA(z)         Treatment    
 9 NA(z)         NA(z)         NA(z)         NA(z)         Control      
10     0 [0.No]      0 [0.No]      1 [1.Yes]     0 [0.No]  Control 

变量的格式如下:

str(short)
tibble [200 x 5] (S3: tbl_df/tbl/data.frame)
 $ q4_1         : dbl+lbl [1:200] NA(z),NA(z),1,...
   ..@ label       : chr "q4_1r.Do you have any of ...assignments? Bilingual/ELL"
   ..@ format.stata: chr "%15.0g"
   ..@ labels      : Named num [1:2] 0 1
   .. ..- attr(*,"names")= chr [1:2] "0.No" "1.Yes"
 $ q4_2         : dbl+lbl [1:200] NA(z),...
   ..@ label       : chr "q4_2r.Do you have any of ...assignments? Sp Ed (self-c)"
   ..@ format.stata: chr "%34.0g"
   ..@ labels      : Named num [1:2] 0 1
   .. ..- attr(*,"names")= chr [1:2] "0.No" "1.Yes"
 $ q4_3         : dbl+lbl [1:200] NA(z),...
   ..@ label       : chr "q4_3r.Do you have any of ...assignments? Sp Ed (incl.)"
   ..@ format.stata: chr "%72.0g"
   ..@ labels      : Named num [1:2] 0 1
   .. ..- attr(*,"names")= chr [1:2] "0.No" "1.Yes"
 $ q4_4         : dbl+lbl [1:200] NA(z),...
   ..@ label       : chr "q4_4r.Do you have any of ...assignments? Gifted/Talented"
   ..@ format.stata: chr "%17.0g"
   ..@ labels      : Named num [1:2] 0 1
   .. ..- attr(*,"names")= chr [1:2] "0.No" "1.Yes"
 $ treatment_cur: chr [1:200] "Control" "Control" "Treatment" "Control" ...
  ..- attr(*,"label")= chr "treatment_cur.treatment_cur"
  ..- attr(*,"format.stata")= chr "%9s"

这是每个变量的类:

> class(short$q4_1)
[1] "haven_labelled" "vctrs_vctr"     "double"

我需要使用来自library(gtsummary)的tbl_summary创建数据的描述性表格,这是一个非常酷的软件包,可用于创建数据的快速且可自定义的摘要状态。

关于我的数据的一件很酷的事情是,每个值都已经有一个与之关联的标签。例如,在q4_2中,0为“否”,而1为“是”。这样,当我将数据输入tbl_summary时,而不是出现在频率计数中:

q4_1    n
   1    7 
   0    8

这可以代替显示这就是我想要的

"q4_1r.Do you have any of ...assignments? Bilingual/ELL"    
        n 
   No   7
   Yes  8

此代码不起作用,因为tbl_summary仅接受某些格式。

tbl_summary(short)
Column(s) ‘q4_1’,‘q4_2’,‘q4_3’,and ‘q4_4’ omitted from output.
Accepted classes are ‘character’,‘factor’,‘numeric’,‘logical’,‘integer’,or ‘difftime’. 

如果我将这些变量转换为字符,它们将丢失其值标签,并且我只会看到以下内容,因为将其转换为字符会使变量失去其标签属性。

q4_1    n
   1    7 
   0    8

关于如何解决这个问题有什么想法吗?我找不到具有这种var格式的内置R文件,以使其更具可复制性。

解决方法

对于标记为避风港的类,它绝不是要用于分析或数据探索的类。相反,它是从其他语言(其中数据类型与R没有一对一的关系)导入数据时介于两者之间创建的。这是从tidyverse博客文章中有关标记为变量类的避风港的。 (https://haven.tidyverse.org/articles/semantics.html

避风港的目的不是提供可以在分析中任何地方使用的标记载体。目的是提供一个中间数据结构,您可以将其转换为常规R数据帧。

要使用tbl_summary(),您首先要在导入的数据框中应用as_factor()函数,例如haven::as_factor(short)。这会将您的数据框转换为基本R类型,并保留Stata值标签作为因子。

仅供参考,我们正在使tbl_summary()与所有类型兼容,并且在软件包的下一发行版中,将不需要as_factor()步骤。您可以在此处跟踪实现的进度:https://github.com/ddsjoberg/gtsummary/pull/603

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

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-