我有一個表中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