看板 R_Language 關於我們 聯絡資訊
[問題類型]: 經驗諮詢(我想用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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.91.235 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1514877479.A.3A9.html
andrew43: google 一下,算是常見的問題,可以試試 as.is 這項參數 01/02 15:38
andrew43: 以及stringsAsFactors這項參數。看來和你的database本身 01/02 15:40
andrew43: 沒有關係,單純是R function這邊調整好即可。 01/02 15:41
andrew43: 也有人直接強制query時讓id預先加上前後綴文字符,避開 01/02 15:43
andrew43: 這個麻煩,之後在R中再額外處理。 01/02 15:43
andrew43: 更正,as.is和stringsAsFactors應與你的情況無關,我沒 01/02 15:44
andrew43: 看清楚。 01/02 15:44
celestialgod: 試試看其他套件,例如RMySQL 01/02 15:44
carl090105: SQLserver 的話試試看走jdbc 01/02 21:10
cywhale: 試試看讀出來就直接家前綴詞 select distinct ('xx_' + 01/02 23:59
cywhale: HospSeqNo), CaseNo, Birthday from YourTable 01/03 00:00
cywhale: "加" (錯字) 加在你的sqlQuery 01/03 00:01
obarisk: 是as. is沒有錯吧 01/03 01:05
andrew43: 我依稀記得as.is可以,但看手冊又不像。請原PO試試看了 01/03 07:58
andrew43: 。 01/03 07:58
developme223: 感謝各位,已參考an大提供的方法在sqlQuery加引數 01/03 11:51
developme223: as.is = T,sqlQuery(,as.is = T)已解決。 01/03 11:53
developme223: 不過若常常要匯出資料,write.table()仍存在此問題 01/03 16:58
developme223: 除了字元前加綴詞之外,我暫時是用write.csv()轉 01/03 17:00
developme223: txt檔,再貼至excel(儲存格選擇文字格式) 01/03 17:01
developme223: 而且欄位很多的話,加綴詞還蠻麻煩的。 01/03 17:03
andrew43: 注意一下write.table()後的問題是txt/csv不正確還是試算 01/03 17:03
andrew43: 表軟體「自作主張」造成的。 01/03 17:04
andrew43: 因為write.csv針對chr類型預設會包上雙引號,excel可能 01/03 17:08
andrew43: 自動忽視了造成麻煩 01/03 17:09
developme223: 了解,主要是想轉Excel檔出來,但不管是用 01/03 17:24
developme223: write.csv(Sampling, file = "Sampling.csv") 01/03 17:24
developme223: 或 01/03 17:25
developme223: write.table(Sampling, file = "Sampling.csv" 01/03 17:25
developme223: ,sep = ",", col.names = T,row.names=F ) 01/03 17:25
developme223: 匯出的檔案皆存在最初的問題,所以好像只能轉txt檔 01/03 17:27
obarisk: 用xlsx或是openxlsx直接寫excel 01/04 06:29