【发布时间】:2021-03-23 12:20:02
【问题描述】:
我在 R 中有一个数据框,包含几个二进制变量
df1 <- cbind(w = c(1,0,0,0,0), x = c(1,1,1,1,0), y = c(0,0,0,1,1), z = (c(0,0,0,0,1)))
> df1
# w x y z
#[1,] 1 1 0 0
#[2,] 0 1 0 0
#[3,] 0 1 0 0
#[4,] 0 1 1 0
#[5,] 0 0 1 1
还有另一个数据框 (df2),其中每一行都包含来自 df1 的指定变量对
df2 <- cbind (var1 = c("w","y","y"), var2 = c("z","x","w"))
> df2
# var1 var2
#[1,] "w" "z"
#[2,] "y" "x"
#[3,] "y" "w"
我想获取 df2 行中的所有组合(“w_z”、“y_x”和“y_w”,并将它们作为列添加到 df1。 每个新创建的“组合”列中的值应指示特定行是否在为该列指定的一个或另一个变量中包含“1”。例如,列 w_z 应指示该行是否在“w”或“z”中具有“1”。生成的数据框应该类似于
> df1_New
# w x y z w_z y_x y_w
#[1,] 1 1 0 0 1 1 1
#[2,] 0 1 0 0 0 1 0
#[3,] 0 1 0 0 0 1 0
#[4,] 0 1 1 0 0 1 1
#[5,] 0 0 1 1 1 1 1
非常感谢任何帮助!
【问题讨论】: