我想要做的是在满足以下条件的数据框架中生成新列:
dataframe1$var1 == dataframe2$var1 &
dataframe1$var2 == dataframe2$var2 &
dataframe1var3 == dataframe3$var3*
基本上我需要生成一个虚拟变量,如果条件满足则值为1,如果不满足则值为0。
我尝试过以下不起作用的代码:
dataframe1$NewVar <- ifelse(dataframe1$var1 == dataframe2$var1 &
dataframe1$var2 == dataframe2$var2 & dataframe1$var3 == dataframe2$var3 , 1, 0)
数据
dput(df1)
structure(list(var1 = c("A", "B", "C"), var2 = c("X", "X", "X"
), var3 = c(1, 2, 2)), .Names = c("var1", "var2", "var3"), row.names = c(NA,
-3L), class = "data.frame")
dput(df2)
structure(list(var1 = c("A", "A", "C"), var2 = c("X", "X", "Y"
), var3 = c(1, 1, 1)), .Names = c("var1", "var2", "var3"), row.names = c(NA,
-3L), class = "data.frame")
答案 0 :(得分:0)
顺便说一句,我的数据集并不像我在图片中发布的示例那么简单。
我不知道它是否相关,但我的变量(列)中的值看起来像这样:
var1:24000000000 var2:1234567 var3:8
答案 1 :(得分:0)
你可以这样做,
as.integer(rowSums(df1 == df2) == ncol(df1))
#[1] 1 0 0