两个连续变量在R中相等的虚拟变量?

时间:2017-03-10 18:04:28

标签: r

数据集cwm看起来像这样

V1  V2  V3
1   2   ?
3   5   ?
4   4   ?
#NA 9   ?
#NA #NA ?

想要创建虚拟变量V3,如果V1 = V2则为1,否则为0,并且在涉及#NA的任何情况下都会产生#NA。

在对等效的列V3和V4做了类似的事情之后,为了产生虚拟变量V5,我需要创建一个连续变量V6,其中1表示V3或V5都不是1,2,表示V3或V5 = 1,3表示V3和V5均为1。

V3  V5  V6
1   0   ?
1   0   ?
0   0   ?
1   1   ?

如果操作正确,则V3 = {0,0,1,#NA,#NA}且V6 = {2,2,1,3}

最佳方法?

1 个答案:

答案 0 :(得分:0)

df = read.table(text="V1  V2
1   2
3   5
4   4
NA 9
NA NA",
header = TRUE, na.strings="NA")

V3 = as.numeric(df$V1 == df$V2)
V3
[1]  0  0  1 NA NA


df2 = read.table(text="V3  V5
1   0
1   0
0   0
1   1",
header = TRUE)

V6 = df2$V3 + df2$V5 + 1
V6
[1] 2 2 1 3