我有一个表中SQLite数据库与下面的模式在R:dbGetQuery()胁迫字符串到数字和导致问题
CREATE TABLE os_logs (version STRING, user STRING, date STRING);
我设置以下命令到被叫cmd
变量。
select count(*), version
from os_logs
group by version
order by version;
当我通过dbGetQuery发送该命令后,我得到数字结果返回版本而不是字符串。
db <- dbConnect(SQLite(),"./os_backup.db")
dbGetQuery(db,cmd)
count(*) version
1421 NA
1797 0.7
6 0.71
2152 0.71
1123 0.72
3455 1
2335 1
的版本应该是
0.70.1111_Product
0.71.22_Dev
0.71.33_Product
...
为什么在我的SQLite数据库字符串被变成R中NUMERICS任何想法?如果我在sql cmd行上执行该命令,它可以很好地工作
编辑: 以下是如何创建表。 (随着越来越多的信息,因为我编出来的原题。
drop table vocf_logs;
CREATE TABLE vocf_logs (version STRING, driver STRING, dir STRING, uuid STRING PRIMARY KEY, t_start STRING);
CREATE TABLE log_os (uuid STRING PRIMARY KEY, os STRING);
.separator ","
.import vocf_dirs.csv vocf_logs
-- Put the OsVersion info from name_redacted into the table
UPDATE vocf_logs
SET version=(select log_os.os from log_os where uuid = vocf_logs.uuid);
你使用哪个软件包?它是'RSQLite'吗?另外,你可以发表你如何插入数据的例子吗?它不应该像你说的那样发生,而是给出你在问题中的含义。 – while
RSQLite。我添加了更多信息。我有一个27k行的excel表,并且无意停下来,所以我切换到了sqlite数据库。这是用于将其放入数据库的顺序。操作系统版本必须从第二次努力合并到 – njfrazie
找出来。表创建的数据类型是错误的 – njfrazie