将R中的多个非排他虚拟变量汇总为一个变量

问题描述

| 我收到了包含多个虚拟变量和其他变量的数据集。基本上,我想做的是使用rms中的summary.formula创建摘要表。但是,我不知道如何从多个虚拟变量创建单个变量,并且它们不是互斥的。这是可能吗。当然,我可以创建一个表等,但是我不能使用summary.formula,并且我希望summary.formula输出仅包括虚拟变量的各个级别。 编辑: 需要说明的是:a和b需要进行总结,但它们并不相互排斥。由于年龄记录在每一行中,因此我需要将a&b汇总为一个变量,以便将其用于summary.formula。我已经编辑了以下代码,以便将0和1分别更改为NA或a,b。 我希望summary.formula的输出如下所示:
h<-data.frame(a=sample(c(\"A\",NA),100,replace=T),b=sample(c(\"B\",age=rnorm(100,50,25),epo=sample(c(\"Y\",\"N\"),T))





library(rms)

summary.formula(epo~age####+summary variable of a & b######,method=\"reverse\",data=h)



#-----------------
 Descriptive Statistics by epo

+---------+--------------------------+--------------------------+
|         |N                         |Y                         |
|         |(N=56)                    |(N=44)                    |
+---------+--------------------------+--------------------------+
|age      |31.53434/48.90788/67.69096|28.63689/43.93502/57.81834|
+---------+--------------------------+--------------------------+
|sab : A  |         25% (14)         |         16% ( 7)         |
+---------+--------------------------+--------------------------+
|   B     |         27% (15)         |         32% (14)         |
+---------+--------------------------+--------------------------+
    

解决方法

        使用paste()似乎可以接受。
h$sab <- paste(h$a,h$b,sep=\"_\")
summary.formula(epo~age+sab,method=\"reverse\",data=h)
#-----------------
 Descriptive Statistics by epo

+---------+--------------------------+--------------------------+
|         |N                         |Y                         |
|         |(N=56)                    |(N=44)                    |
+---------+--------------------------+--------------------------+
|age      |31.53434/48.90788/67.69096|28.63689/43.93502/57.81834|
+---------+--------------------------+--------------------------+
|sab : 0_0|         25% (14)         |         16% ( 7)         |
+---------+--------------------------+--------------------------+
|    0_1  |         27% (15)         |         32% (14)         |
+---------+--------------------------+--------------------------+
|    1_0  |         25% (14)         |         34% (15)         |
+---------+--------------------------+--------------------------+
|    1_1  |         23% (13)         |         18% ( 8)         |
+---------+--------------------------+--------------------------+
另一种选择可能是interact():
summary.formula(epo~age+interaction(a,b),data=h)
相反,如果您希望将逻辑\'OR \'应用于变量的组合,请使用:
h$a_or_b <- with(h,a|b)
summary.formula(epo ~ age+ h$a_or_b,data=h)
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...