我使用来自tableOne包的createTableOne函数。我很喜欢 为了便于在R markdown中访问,我想将列表对象部署到单独的变量中。
例如:如果我有一张桌子:
0 1
Var1 12 15
var2 85 32
我想传播到以下变量:
Var1_0 = 12
Var1_1 = 15
Var2_0 = 85
Var1_1 = 32
根据表的结构,我们可以unclass
将输出返回list
,提取组件'ContTable',它也是a list
,因此我们在list
with上循环lapply
,然后获取行,列名以提取单个组件('n ','mean','sd'),使用格式化sprintf
某些组件的输出,并以形式返回list
。要将名称设置为n_1
,n_2
等等,通过list
with循环Map
,通过paste
ing设置名称,然后用于list2env
在全局环境中创建对象(不过不建议)
library(tableone)
lst1 <- unclass(table2)
lst2 <- lapply(unclass(lst1$ContTable), function(x)
list(n = x[1, "n"], age = sprintf('%f (%0.2f)', x['age', 'mean'],
x['age', 'sd']), time = sprintf('%f (%0.2f)', x['time', 'mean'],
x['time', 'sd'])))
Map(function(x, y) list2env(setNames(x, paste0(names(x), "_", y)),
.GlobalEnv), lst2, names(lst2))
-输出
n_1
#[1] 138
n_2
#[1] 90
age_1
#[1] "63.340580 (9.14)"
age_2
#[1] "61.077778 (8.85)"
time_1
#[1] "283.231884 (213.05)"
time_2
#[1] "338.966667 (203.47)"
vars <- c("age","ph.ecog","time")
catvars <- c("ph.ecog")
table2 <- CreateTableOne(vars = vars, factorVars = catvars,
data = lung, strata = "sex")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句