【问题标题】:Change levels and labels using the `as_factor` R haven function for table1 output使用 `as_factor` R Have 函数更改表 1 输出的级别和标签
【发布时间】:2021-06-22 13:00:53
【问题描述】:

我正在尝试使用 table1 和 SAV 文件中的 p 值和数据创建一个描述性统计表。我使用 haven 包中的 read_sav 读取文件。

library(haven)
library(table1)
library(tidyverse)

df<- read_sav(filename)

outcome_var = 'treatment'
test_df <- tibble(treatment = c(1,0,0,0,1,0), x = 1:6, y = rnorm(6))

tibble 的形式读取数据。要创建 table1,treatment 变量必须是因子类型。通常,我会使用上面的链接更改列

library(MatchIt)
data(lalonde)

lalonde$treat    <- factor(lalonde$treat, levels=c(0, 1, 2), labels=c("Control", "Treatment", "P-value"))

但是,当我这样做时

factor(test_df[,outcome_var], levels=c(0, 1, 2), labels=c("Not Treated", "Treated", "P-value")

treatment 列返回为 NULL。如果我使用haven 中的as_factor 函数,我无法通过关卡或标签。

我希望输出类似于上面 table1 链接中显示的表格。

如何使用 as_factor 更改级别和标签以包含 p 值列?或者有没有办法使用factor 而不将NULL 返回到列?

【问题讨论】:

    标签: r r-factor r-haven


    【解决方案1】:

    tibble 数据框转换为普通数据框,然后您可以使用factor 和您的p 值脚本来生成您的表1。

    test_df <- as.data.frame(test_df)
    
    test_df$treatment <- factor(test_df$treatment, levels=c(0, 1, 2), labels=c("Not Treated", "Treated", "P-value"))
    
    table1(~ x + y | treatment, data = test_df, render = rndr)
    

    请注意,我使用了test_df$treatment 而不是test_df[, outcome]。每种方法都返回不同的结构,factor 使用test_df$treatment 返回的结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2021-09-13
      • 1970-01-01
      • 2013-12-15
      • 2020-09-12
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多