在R的同一数据框中组合两个重叠的变量

时间:2018-11-26 20:56:34

标签: r dataframe variables overlap

我在这里是新手,对统计数据,定义或术语不太熟悉。我会尽力澄清我的问题。

我有一个称为A的数据框,其中包含大约279个变量和3734个观测值。每个观察结果都代表一个患者,并且存在变量来描述这些患者的不同特征和属性,例如吸烟状态,血压,葡萄糖及其在一定时期结束时的死亡或活着状态。

我有一个名为A $ new_totmort的变量,如下所示:

> A$test_totmort
> typeof(A$test_totmort)
> typeof(A$test_totmort)
[1] "double"
> class(A$test_totmort)
[1] "labelled" "numeric" 
> table(A$test_totmort)
   1    2 
3127  607

变量代表一组具有一定动脉特征并在特定日期结束前已死亡/存活的状态。就目前而言,有3127个活着出来,有607个死了。死亡原因可分为两种类型:心血管事件(中风和心脏病发作)和非CV事件(其他所有因素,肿瘤等)。

现在,使用变量A $ test_cvmort,如下所示:

> typeof(A$test_cvmort)
[1] "character"
> class(A$test_cvmort)
[1] "character"
> table(A$test_cvmort)
   0    1 
3529   50 

我们在这里可以看到,有50人死于简历事件。现在,我的问题如下:

如何将这两个变量组合在一起,使得所有死亡都可以通过以下方式在同一变量中表示:

>table(A$my_desired_variable)
   0    1 
557    50

其中0代表非简历死亡,1代表简历死亡?

我真的希望我已经明确了我要寻找的东西。对于无法简短地指定我想要的内容,我深表歉意。

非常感谢所有帮助!

编辑:我解决了!

> A$test <- paste(A$test_cvmort, A$test_totmort)
> table(A$test)
0 0  0 1  1 1 NA 0 NA 1 
3050  479   50   77   78

经过一些调整后,基本上可以得到我想要的变量:

0    1    2 
3050  557   50

有3050人还活着,有557人死于非简历原因,有50人死于简历。

0 个答案:

没有答案