2013-05-30 37 views
0

我正在使用R中的sqldf軟件包。我想創建一個數據集,其學生的ID從另一個數據集中排除。我的代碼如下所示:sqldf - 選擇在另一個select中嵌套不起作用

delete <- sqldf("select distinct ID from A where ...") 
B<-sqldf("select * from A where ID not in ('select ID from delete')") 

運行,我發現B是完全一樣A.看來sqldf不recogonize嵌套查詢語句的代碼之後。 任何建議,將不勝感激!

回答

3

的代碼有這些問題:

  1. 存在實際上沒有嵌套選擇在所有所示的代碼。該聲明請求的所有ID不等於字符串'select ID from delete'。刪除引號。

  2. delete是一個SQLite關鍵字。請爲data.frame使用不同的名稱,或在SQL語句中將名稱delete放在引號中,以便它不會將其視爲關鍵字。

  3. 下次請以可重現的形式說明問題。見How to make a great R reproducible example?

使這三個變化,我們有以下其中A擁有ID的1,2,3,4,刪除了的ID 1,2和B有ID的3,4。

library(sqldf)  
A <- data.frame(ID = c(1, 1, 2, 3, 4)) 

delete <- sqldf("select distinct ID from A where ID < 3") 
B <- sqldf("select * from A where ID not in (select ID from 'delete')") 
相關問題