我需要使用Date字段连接2个表
> class(pagos$pseudo_1mes)
[1] "Date"
> class(pseudo_meses$pseudo_1mes)
[1] "Date"
Run Code Online (Sandbox Code Playgroud)
我的代码是:
library(sqldf)
pagos<-sqldf("select a.*, b.mes_atras from pagos a
left join pseudo_meses b
on a.pseudo_1mes=b.pseudo_1mes")
Run Code Online (Sandbox Code Playgroud)
我得到以下错误,没有结果:
asfn(rs [[i]])出错:需要显式单位进行数值转换
我该如何解决?谢谢
小智 8
我的一个变量有class ='difftime'而不是常规数字,因为我减去了日期.SQLDF不适用于difftime类.对我来说发生的事情是我有一个data.table,减去一些日期,最后得到一个difftime变量类型.我转换为data.frame,当我再次进行减法时它是数字.
我遇到了同样的问题。我的解决办法是在命令末尾添加(method = "name__class"),如:
sqldf("select * from pagos", method = "name__class")
Run Code Online (Sandbox Code Playgroud)
然而,日期变量的格式似乎会改变,尽管日期变量可以稍后更新。我认为这仍然是一个有用的解决方案,因为我的目的是让 sqldf 工作来解决复杂的任务,同时更新列相对容易得多。
小智 2
我收到了同样的错误消息。我不知道该消息的原因,但在 sql 查询中给出明确的单位解决了我的问题。
使用:
sqldf("select x, y, z from pagos")
Run Code Online (Sandbox Code Playgroud)
不要使用:
sqldf("select * from pagos")
Run Code Online (Sandbox Code Playgroud)