Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用sqldf保存times类_Sql_R_Sqlite_Sqldf_Chron - Fatal编程技术网

用sqldf保存times类

用sqldf保存times类,sql,r,sqlite,sqldf,chron,Sql,R,Sqlite,Sqldf,Chron,我使用sqldf连接多个表,但在保存列上带有chron包的times类集时遇到了问题。我对sqldf函数使用了method=name\uuuu class参数,并用该类恰当地命名了我的列,但在使用sqldf选择后,我的时间变量不会被保留 是否可以选择times类列并保留该类,或者我必须在SQL选择后重置该类,这并不理想。我提供了一个玩具示例,展示了sqldf如何保留日期类,而不是时间类: 提前感谢您的帮助。sqldf查找as.X以转换为类X,但没有as.times,因此它假定times不是类,而

我使用sqldf连接多个表,但在保存列上带有chron包的times类集时遇到了问题。我对sqldf函数使用了method=name\uuuu class参数,并用该类恰当地命名了我的列,但在使用sqldf选择后,我的时间变量不会被保留

是否可以选择times类列并保留该类,或者我必须在SQL选择后重置该类,这并不理想。我提供了一个玩具示例,展示了sqldf如何保留日期类,而不是时间类:

提前感谢您的帮助。

sqldf查找as.X以转换为类X,但没有as.times,因此它假定times不是类,而X__;u times是您想要使用的实际名称

要解决此问题,请定义为.times:

如果您想返回SQLite,请确保首先分离RH2,因为如果加载了RH2,它将假定您需要它,除非您根据?sqldf专门指定SQLite

新发行
这已作为新问题添加

为什么不使用sqldf“从mytime中选择x,y”。因为从?sqldf 4 name__类开始的时间有问题,这意味着以_类结尾的列名称带有两个下划线,其中类是R类,例如Date。。。times不是R类。我需要使用变量重命名。我希望在一个步骤中使用SELECTVARNAME作为表中的newvarname而不是NewTable来完成这项工作!谢谢你。这很好用!但是我认为我仍然需要使用name\uu类,因为我需要保留date类?感谢您将此添加为bug。使用默认方法=auto,它会自动转换与输入列名相同的任何列的类,因此,由于y在输入中具有日期类,因此它会自动将名为y的输出列转换为日期类。Ah。正当我现在明白你的意思了。很抱歉给您带来困惑,谢谢您的帮助!
 library(chron)
 mytime = data.frame(x=times(c("11:45:00", "12:15:00")))
 mytime$y = as.Date(c("2019-09-01", "2019-09-11"))
 mytime

         x          y
1 11:45:00 2019-09-01
2 12:15:00 2019-09-11
 class(mytime$x)
[1] "times"
 class(mytime$y)
[1] "Date"


 sqldf('select x as x__times, y as y__Date from mytime', method = "name__class")

    x__times         y
1 0.4895833 2019-09-01
2 0.5104167 2019-09-11
as.times <- times
library(RH2)
library(sqldf)
sqldf("select x, y from mytime")