这似乎是一个简单的问题,但我无法让它发挥作用。如何使用两个列值必须不相等的条件在R中进行合并?
因此,例如使用以下data.frame:
column1 <- c('a','b','c', 'a', 'a', 'a')
column2 <- c('1', '2', '3', '1', '2', '3')
df <- data.frame(column1, column2)
我可以通过执行以下操作将data.frame与自身合并:
result <- merge(x=df, y=df, by.x="column1", by.y="column1")
但是,如果我只希望当column1值相等但column2值不相等时才能使用该合并怎么办?
在SQL中可以这样工作:
SELECT
L.column1
L.column2 AS column2_left
R.column2 AS column2_right
FROM DF L
LEFT JOIN DF R
ON L.column1 = R.column1
AND L.column2 != R.column2
但我怎么能在R?中做到这一点?
所以,我希望得到以下结果:
column1 <- c('a', 'a')
column2.left <- c('1', '1')
column2.right <- c('2', '3')
df <- data.frame(column1, column2.left, column2.right)