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

看板R_Language作者 (allen)時間7年前 (2018/01/02 15:17), 編輯推噓3(3029)
留言32則, 6人參與, 7年前最新討論串1/1
[問題類型]: 經驗諮詢(我想用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

01/02 15:38, 7年前 , 1F
google 一下,算是常見的問題,可以試試 as.is 這項參數
01/02 15:38, 1F

01/02 15:40, 7年前 , 2F
以及stringsAsFactors這項參數。看來和你的database本身
01/02 15:40, 2F

01/02 15:41, 7年前 , 3F
沒有關係,單純是R function這邊調整好即可。
01/02 15:41, 3F

01/02 15:43, 7年前 , 4F
也有人直接強制query時讓id預先加上前後綴文字符,避開
01/02 15:43, 4F

01/02 15:43, 7年前 , 5F
這個麻煩,之後在R中再額外處理。
01/02 15:43, 5F

01/02 15:44, 7年前 , 6F
更正,as.is和stringsAsFactors應與你的情況無關,我沒
01/02 15:44, 6F

01/02 15:44, 7年前 , 7F
看清楚。
01/02 15:44, 7F

01/02 15:44, 7年前 , 8F
試試看其他套件,例如RMySQL
01/02 15:44, 8F

01/02 21:10, 7年前 , 9F
SQLserver 的話試試看走jdbc
01/02 21:10, 9F

01/02 23:59, 7年前 , 10F
試試看讀出來就直接家前綴詞 select distinct ('xx_' +
01/02 23:59, 10F

01/03 00:00, 7年前 , 11F
HospSeqNo), CaseNo, Birthday from YourTable
01/03 00:00, 11F

01/03 00:01, 7年前 , 12F
"加" (錯字) 加在你的sqlQuery
01/03 00:01, 12F

01/03 01:05, 7年前 , 13F
是as. is沒有錯吧
01/03 01:05, 13F

01/03 07:58, 7年前 , 14F
我依稀記得as.is可以,但看手冊又不像。請原PO試試看了
01/03 07:58, 14F

01/03 07:58, 7年前 , 15F
01/03 07:58, 15F

01/03 11:51, 7年前 , 16F
感謝各位,已參考an大提供的方法在sqlQuery加引數
01/03 11:51, 16F

01/03 11:53, 7年前 , 17F
as.is = T,sqlQuery(,as.is = T)已解決。
01/03 11:53, 17F

01/03 16:58, 7年前 , 18F
不過若常常要匯出資料,write.table()仍存在此問題
01/03 16:58, 18F

01/03 17:00, 7年前 , 19F
除了字元前加綴詞之外,我暫時是用write.csv()轉
01/03 17:00, 19F

01/03 17:01, 7年前 , 20F
txt檔,再貼至excel(儲存格選擇文字格式)
01/03 17:01, 20F

01/03 17:03, 7年前 , 21F
而且欄位很多的話,加綴詞還蠻麻煩的。
01/03 17:03, 21F

01/03 17:03, 7年前 , 22F
注意一下write.table()後的問題是txt/csv不正確還是試算
01/03 17:03, 22F

01/03 17:04, 7年前 , 23F
表軟體「自作主張」造成的。
01/03 17:04, 23F

01/03 17:08, 7年前 , 24F
因為write.csv針對chr類型預設會包上雙引號,excel可能
01/03 17:08, 24F

01/03 17:09, 7年前 , 25F
自動忽視了造成麻煩
01/03 17:09, 25F

01/03 17:24, 7年前 , 26F
了解,主要是想轉Excel檔出來,但不管是用
01/03 17:24, 26F

01/03 17:24, 7年前 , 27F
write.csv(Sampling, file = "Sampling.csv")
01/03 17:24, 27F

01/03 17:25, 7年前 , 28F
01/03 17:25, 28F

01/03 17:25, 7年前 , 29F
write.table(Sampling, file = "Sampling.csv"
01/03 17:25, 29F

01/03 17:25, 7年前 , 30F
,sep = ",", col.names = T,row.names=F )
01/03 17:25, 30F

01/03 17:27, 7年前 , 31F
匯出的檔案皆存在最初的問題,所以好像只能轉txt檔
01/03 17:27, 31F

01/04 06:29, 7年前 , 32F
用xlsx或是openxlsx直接寫excel
01/04 06:29, 32F
文章代碼(AID): #1QIp8dEf (R_Language)
文章代碼(AID): #1QIp8dEf (R_Language)