[問題] R連結MS_SQL資料格式問題

作者: developme223 (allen)   2018-01-02 15:17:56
[問題類型]:
經驗諮詢(我想用R 連接某些資料庫,請問大家的經驗)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[程式範例]:
建立重現錯誤的方法可以參考:
[問題類型]:
經驗諮詢(我想用R 連接某些資料庫,請問大家的經驗)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
因某些需求,須利用R套件RODBC連結SQL資料庫,但連接後發現,Rstudio會把欄位判斷為
數字導致若開頭為0的字串皆不會顯示,例如:欄位HospSeqNo本應為:01、00,卻顯示
為1、0。
如下:
語法:https://imgur.com/a/qoL24
資料表:https://imgur.com/79w2oMw
已在MS_SQL建立表格時,欄位格式設定為字串CHAR,但上述問題仍會發生。
MsSQL語法如下:
語法:https://imgur.com/zhBMqFQ
資料表:https://imgur.com/LaSoxPZ
懇求版上高手能提供解決方法,十分感謝!
[程式範例]:
[環境敘述]:
R版本: 3.2.1
本機:WIN10
[關鍵字]:
MsSQL、Rstudio
作者: andrew43 (討厭有好心推文後刪文者)   2018-01-02 15:38:00
google 一下,算是常見的問題,可以試試 as.is 這項參數以及stringsAsFactors這項參數。看來和你的database本身沒有關係,單純是R function這邊調整好即可。也有人直接強制query時讓id預先加上前後綴文字符,避開這個麻煩,之後在R中再額外處理。更正,as.is和stringsAsFactors應與你的情況無關,我沒看清楚。
作者: celestialgod (天)   2018-01-02 15:44:00
試試看其他套件,例如RMySQL
作者: carl090105 (Jing)   2018-01-02 21:10:00
SQLserver 的話試試看走jdbc
作者: cywhale (cywhale)   2018-01-02 23:59:00
試試看讀出來就直接家前綴詞 select distinct ('xx_' +HospSeqNo), CaseNo, Birthday from YourTable"加" (錯字) 加在你的sqlQuery
作者: obarisk (OSWALT)   2018-01-03 01:05:00
是as. is沒有錯吧
作者: andrew43 (討厭有好心推文後刪文者)   2018-01-03 07:58:00
我依稀記得as.is可以,但看手冊又不像。請原PO試試看了。
作者: developme223 (allen)   2018-01-03 11:51:00
感謝各位,已參考an大提供的方法在sqlQuery加引數as.is = T,sqlQuery(,as.is = T)已解決。不過若常常要匯出資料,write.table()仍存在此問題除了字元前加綴詞之外,我暫時是用write.csv()轉txt檔,再貼至excel(儲存格選擇文字格式)而且欄位很多的話,加綴詞還蠻麻煩的。
作者: andrew43 (討厭有好心推文後刪文者)   2018-01-03 17:03:00
注意一下write.table()後的問題是txt/csv不正確還是試算表軟體「自作主張」造成的。因為write.csv針對chr類型預設會包上雙引號,excel可能自動忽視了造成麻煩
作者: developme223 (allen)   2018-01-03 17:24:00
了解,主要是想轉Excel檔出來,但不管是用write.csv(Sampling, file = "Sampling.csv")或write.table(Sampling, file = "Sampling.csv",sep = ",", col.names = T,row.names=F )匯出的檔案皆存在最初的問題,所以好像只能轉txt檔
作者: obarisk (OSWALT)   2018-01-04 06:29:00
用xlsx或是openxlsx直接寫excel

Links booklink

Contact Us: admin [ a t ] ucptt.com