我认为这是一个经常性的问题,回答了好几次,但我只是不知道如何正确地问这个问题=(
在 MySQL 中:
我有 2 个表,里面有某种字符串,现在我想要:
1. 两个表中出现的数据
2. 来自表 b 中的数据
在 R 中相同:
我有 2 个 R data.frame 并且我想要:
1. 出现在 a 和 b
中的数据 2. 出现在 a 但不在 b 中的数据
在 mysql 中,您可以这样做以获取两个表中的数据
SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id
并这样做以从不在表 b 中的 a 中获取 tada
SELECT * FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id
WHERE t2.id IS NULL
在R
:
a <- data.frame(V1=sample(letters[1:3],20,TRUE),V2=rnorm(20))
b <- data.frame(V1=sample(letters[2:4],20,TRUE),V2=rnorm(20))
# the data that occur in a and b
(ab <- merge(a,b,by="V1"))
# the data that occur in a but not in b
aNOTb <- merge(a,b,by="V1",all=TRUE)
(aNOTb <- aNOTb[is.na(aNOTb$V2.y),])