代码之家  ›  专栏  ›  技术社区  ›  pyeR_biz

虽然两个表中都存在联接列,但Sqldf联接错误[已关闭]

  •  0
  • pyeR_biz  · 技术社区  · 7 年前

    我在sqldf中遇到了一个特殊的错误,尽管我以前使用过类似的命令。我装了三个包裹。错误如下所示。在我的实际数据帧中,错误是相同的,即使两个表中的连接列(这里是X1)具有相同的数据类型。我犯了什么错误?

    library("stringr") 
    library("readxl") 
    library("sqldf")
    
     q<-data.frame(replicate(10,sample(0:7,20,rep=TRUE)))
     w<-data.frame(replicate(10,sample(0:5,20,rep=TRUE)))
    
    > q
       X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
    1   3  6  4  0  7  4  1  1  0   4
    2   5  3  2  1  7 
    
    
       > w 
        X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
    
    1   4  2  1  1  5  5  2  3  5   5
    2   2  4  3  2  2  5 
    
     newdf<-sqldf("select * from q left join (select X3, X2,X4 from w) using (X1)")
    
        Error in rsqlite_send_query(conn@ptr, statement) : 
          cannot join using column X1 - column not present in both tables
    

    编辑:所需的输出是两个表的左连接,表q是左表。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Pawel    7 年前

    我相信您只需要将X1添加到:

    (select X3, X2,X4 from w)
    

    因此:

    (select X3, X2,X4, X1 from w)
    

    在这里,您将创建一个用于合并的表,但不包括在需要合并的列中。