で行方不明見つけること、data.frame 1の行は次のように私は2つのデータフレームを持っている他の
a1 <- data.frame(a = 1:5, b=letters[1:5], c = 1:5)
a2 <- data.frame(a = 1:3, b=letters[1:3], d = 1:3)
を別の列を持つ2 data.framesの比較私はとA2に存在しないA1の行を見つけたいです最初の2つの列(a、b)だけを基準にします。私の理想的な出力をする必要があり、私は次のことを試してみました
a b c match
1 1 a 1 yes
2 2 b 2 yes
3 3 c 3 yes
4 4 d 4 no
5 5 e 5 no
、
output <- sqldf('SELECT * FROM a1 EXCEPT SELECT * FROM a2')
が、この1は、データフレームとも名前が同じで、両方に同じ列があるときにのみ機能します。しかし、私は(a、b)の列で一致するものだけを見つけて、a1の出力にyes/noを指定したいと考えています。
誰かがこれを見つけるのを助けることができますか?
。私はここで疑いが1つあります。a2のデータフレーム(a、b)の列名が(q、w)のようなものであれば、次のように指定できます。 c( "no"、 "yes")[(!is.na (merge(a1、a2、by = c( "a" = "q"、 "b" = "w")、all.x = TRUE)$ d))+ 1L] – haimen
@haimen 'left_join'では、あなたはその構文を行うことができますが、 'merge'では' by.x'と 'by.y'となります – akrun