3

では、修飾子SQLを使用してクエリ結果を制限できます。WHERE EXISTSたとえば、次のようになります。

SELECT *
FROM Table_B
WHERE EXISTS (SELECT ID FROM TABLE_A)

で同じことができますRか?

大きなデータフレームがあります - df.a と呼んでください。

str(df.a)
ClientID : Factor w/ 148892 levels
Month    : Date, format  "2012-07-31"
Visits   : int

df.a をより小さい df.b にサブセット化しました。ここで、df.a に戻りたいのですが、clientID が df.b にある場合にのみレコードを取得します。

このように を使用できましたがmerge、よりエレガントなソリューションを望んでいました。

july.activity <- merge(df.a, df.b, by="ClientID", all.x=TRUE)
july.activity <- subset(july.activity, Visits.x != "NA")
4

1 に答える 1

3

多分これはあなたが必要とすることをしますか?

july.activity <- df.a[df.a$ClientID %in% df.b$ClientID & !is.na(df.a$Visits), ]

df.a <- data.frame(ClientID = factor(letters[c(1,2,2,3)]), Visits = c(1,NA,2,3))
df.b <- df.a[1:2,]
df.b
  ClientID Visits
1        a      1
2        b     NA
df.a
  ClientID Visits
1        a      1
2        b     NA
3        b      2
4        c      3
df.a[df.a$ClientID %in% df.b$ClientID & !is.na(df.a$Visits), ]
  ClientID Visits
1        a      1
3        b      2
于 2012-08-03T18:53:29.900 に答える