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