使用 `as_factor` R haven 函数更改表 1 输出的级别和标签
Change levels and labels using the `as_factor` R haven function for table1 output
我正在尝试使用 table1 和来自 SAV 文件的 p 值和数据来创建描述性统计数据 table。我使用 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
变量必须是因子类型。通常,我会使用上面的 link 来更改列,例如
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 link 中显示的 table。
如何使用 as_factor
更改水平和标签以包含 p 值列?或者有没有一种方法可以使用 factor
而不向列返回 NULL?
将 tibble
数据框转换为普通数据框,然后您可以使用 factor
和您的 p 值脚本生成您的 Table 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]
。每种方法 returns 一个不同的结构,factor
使用 test_df$treatment
returns.
我正在尝试使用 table1 和来自 SAV 文件的 p 值和数据来创建描述性统计数据 table。我使用 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
变量必须是因子类型。通常,我会使用上面的 link 来更改列,例如
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 link 中显示的 table。
如何使用 as_factor
更改水平和标签以包含 p 值列?或者有没有一种方法可以使用 factor
而不向列返回 NULL?
将 tibble
数据框转换为普通数据框,然后您可以使用 factor
和您的 p 值脚本生成您的 Table 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]
。每种方法 returns 一个不同的结构,factor
使用 test_df$treatment
returns.