[程式] [R]如何將反斜線轉換成斜線或雙反斜線?

看板Statistics作者時間13年前 (2011/02/16 21:30), 編輯推噓2(2016)
留言18則, 5人參與, 最新討論串1/1
[軟體程式類別]:R [程式問題]:將反斜線(BackSlash)轉換成斜線(Slash)或雙反斜線(double backslash) [軟體熟悉度] 高(1年以上) [問題敘述]:因為設計一個可以由使用者選擇檔案存放處的程式,當選擇好儲放位置後 R會將計算結果儲放在所指定的地方上。但因為windows系統檔案儲放處格式都是反斜線 格式,例如"D:\demo\statistics.xls",此路徑放到R中無法正確執行,必須轉換成 "D:\\demo\\statistics.xls"或"D:/demo/statistics.xls"。 [程式範例]: 曾研究過幾種解決方式,但均因部分問題而無法解決,例如利用readline函數 > path=readline("Input File: ") # 手動輸入 D:\demo\statistics.xls 可得答案 > path [1] "D:\\demo\\statistics.xls" 但問題是手動輸入部分是由使用者以Browser決定,所得出的路徑會自動補上引號 "D:\demo\statistics.xls" 以此放入到readline函數中結果將變成 [1] "\"D:\\demo\\statistics.xls\"" 此將造成程式錯誤 另外曾找到gsub函數似乎可以將反斜線變成斜線,但不知道如何使用 以上,有請R前輩撥空指導程式疑惑,謝謝大家 ----------------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.107.217 ※ 編輯: discount 來自: 114.45.107.217 (02/16 21:35)

02/16 22:43, , 1F
http://0rz.tw/zHqQP 參考看看
02/16 22:43, 1F

02/17 08:23, , 2F
感謝提供資訊,但看完好像無法得到靈感?
02/17 08:23, 2F

02/17 08:26, , 3F
用內建的gsub(),如果在linux直接cal sed會比較快
02/17 08:26, 3F

02/17 08:40, , 4F
參考?gsub()範例二
02/17 08:40, 4F

02/17 08:40, , 5F
path<-readline()
02/17 08:40, 5F

02/17 08:41, , 6F
path<-gsub("(\\/)","\\1/",path);
02/17 08:41, 6F

02/17 12:20, , 7F
何不用file.choose()直接用對話視窗來指定path及檔名?
02/17 12:20, 7F

02/17 13:16, , 8F
gsub 可以配 regular expression 喔 , 又學了一招
02/17 13:16, 8F

02/17 19:16, , 9F
我都靠linux的記事本在轉 "\" 和 "#" 這兩種字元
02/17 19:16, 9F

02/17 20:29, , 10F
用linux可以用pipe+sed啊
02/17 20:29, 10F

02/17 20:36, , 11F
7F說的好,只是在win還是得自己加入\\?
02/17 20:36, 11F

02/17 20:36, , 12F
很少用win所以不確定
02/17 20:36, 12F

02/17 22:02, , 13F
感謝大家慷慨解惑,因所設計的程式已有自己的Browser,所
02/17 22:02, 13F

02/17 22:03, , 14F
以不打算利用R內建的file.choose()功能,另外eadline函數
02/17 22:03, 14F

02/17 22:04, , 15F
僅適合輸入未含引號的path,若有引號則會出錯,這就是我發
02/17 22:04, 15F

02/17 22:04, , 16F
問尋求解答的原因!
02/17 22:04, 16F

02/18 03:30, , 17F
官腔?
02/18 03:30, 17F

02/18 19:07, , 18F
甚麼官腔?
02/18 19:07, 18F
文章代碼(AID): #1DMz5dRu (Statistics)