[問題] 用R 字串處理 得到路徑 作為指令碼

看板R_Language作者時間8年前 (2017/03/27 16:01), 8年前編輯推噓0(0032)
留言32則, 4人參與, 最新討論串1/1
我又重開一個文件獨立測試指令 buq <-c("TUBERCU","BACTERIA","OTHERBAC") 這個向量其實是很長的一串 我為了測試方便先拿三個來測 RR資料如下 http://i.imgur.com/GV3PUcP.jpg
下面兩個是寫入檔案被我改寫成這樣 ============================= write.table(RR,paste("C:/Users/Yan-Rong/Desktop/test/outp/", buq[1], ".csv", sep=""),append=TRUE,sep=",") 錯誤碼如下 Warning message: In write.table(RR, paste("C:/Users/Yan-Rong/Desktop/test/outp/", : appending column names to file ============================================ dev.copy2pdf(file=paste("C:/Users/Yan-Rong/Desktop/test/outp/", buq[1], ".pdf", sep="") 錯誤碼如下 出現+號 好像要我填什麼之類的 > dev.copy2pdf(file=paste("C:/Users/Yan-Rong/Desktop/test/outp/", buq[1], ".pdf", sep="")) + 它似乎 要我填什麼東西之類的 =========================================================== 作者: BUQ (固執又暴燥) 看板: R_Language 標題: [問題] 用R 字串處理 得到路徑 作為指令碼 時間: Mon Mar 27 16:01:13 2017 [問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]:半個月 [問題敘述]: 我有一個名為kk 的list 內容是檔名 write.table(RR,"C:/Users/Desktop/test/name1.csv"...略 ^^^^^ 這個部分要用list的內容替換 我想用字串處理搞定路徑+檔名 讓他自動化 paste ("A","B",sep="") <=我就想利用這個函數 兩者 結合就變成這樣 write.table(RR,paste("C:/Users/Desktop/test/", kk, ".csv"...... 行的通嗎 [程式範例]: [環境敘述]: R 3。3。3 [關鍵字]: 字串處理路徑問題 選擇性,也許未來有用 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.135.58.147 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1490601676.A.6D8.html

03/27 19:39, , 1F
可以多給點資訊, 像RR的物件形態, error message等
03/27 19:39, 1F

03/27 23:34, , 2F
file. 開頭的函數呢?
03/27 23:34, 2F

03/28 09:02, , 3F
mode(RR) [1] "character"
03/28 09:02, 3F

03/28 09:03, , 4F
也不一定要那一行 我有很多部分需要路徑處理
03/28 09:03, 4F

03/28 09:03, , 5F
再一個例子
03/28 09:03, 5F

03/28 09:04, , 6F
dev.copy2pdf(file="C:/Users/Desktop/test/LUNGCIRC.pdf")
03/28 09:04, 6F

03/28 09:04, , 7F
我自以為是跟RR無關..啦 不知道有沒有猜錯
03/28 09:04, 7F

03/28 09:17, , 8F
看不懂原PO說的自動化是甚麼意思...如果是要把不同的資料
03/28 09:17, 8F

03/28 09:18, , 9F
寫到list中的路徑,用paste0()+*apply系列函數應該就能做到
03/28 09:18, 9F

03/28 09:20, , 10F
但原PO說失敗...請問是怎麼個失敗法呢?
03/28 09:20, 10F
※ 編輯: BUQ (140.135.58.147), 03/28/2017 09:52:13

03/28 09:53, , 11F
我內文改寫了 應該會比較清楚 謝謝大大們Y
03/28 09:53, 11F
※ 編輯: BUQ (140.135.58.147), 03/28/2017 09:54:20

03/28 10:04, , 12F
把paste()裡面的東西print出來檢查看看就可以知道了呀~
03/28 10:04, 12F

03/28 10:05, , 13F
話說如果kk是list的話,paste()裡面應該是要放kk[i]吧
03/28 10:05, 13F

03/28 10:06, , 14F
對 少打了
03/28 10:06, 14F

03/28 10:10, , 15F
你每個不同檔名的csv檔內容都是RR?
03/28 10:10, 15F

03/28 10:54, , 16F
03/28 10:54, 16F

03/28 11:04, , 17F
sapply(kk,function(x){write.csv(RR,paste0(a,x,".csv")})
03/28 11:04, 17F

03/28 11:06, , 18F
推文長度關係將"C:/Users/Desktop/test/"簡化為a
03/28 11:06, 18F

03/28 11:24, , 19F
喔...謝謝我試看看
03/28 11:24, 19F
※ 編輯: BUQ (140.135.58.147), 03/28/2017 15:19:05 ※ 編輯: BUQ (175.96.64.25), 03/28/2017 15:21:15

03/28 15:27, , 20F
他沒有說你錯,只是警告你正在嘗試把某欄寫到檔案裡而不是預
03/28 15:27, 20F

03/28 15:28, , 21F
設的data frame或是matrix格式...see help(write.table)
03/28 15:28, 21F

03/28 15:39, , 22F
第一部分成功 謝謝哥....
03/28 15:39, 22F

03/28 15:51, , 23F
沒用過第2個但你dev.copy2pdf(file=paste(...)後面就沒了耶
03/28 15:51, 23F

03/28 16:02, , 24F
少打一個括號
03/28 16:02, 24F

03/28 16:02, , 25F
我去補上
03/28 16:02, 25F
※ 編輯: BUQ (140.135.58.147), 03/28/2017 16:02:53

03/28 16:05, , 26F
所以第2個的錯誤訊息是...?
03/28 16:05, 26F

03/28 22:16, , 27F
就如 錯誤碼寫的那樣啊
03/28 22:16, 27F
※ 編輯: BUQ (140.135.58.147), 03/29/2017 10:52:22

03/29 10:52, , 28F
我有 改了一下 看會不會比較清楚
03/29 10:52, 28F

03/29 11:09, , 29F
會出現+號就是因為你指令少了一個右括號的關係...沒打完當
03/29 11:09, 29F

03/29 11:10, , 30F
然停在那邊啊,那不是錯誤碼。
03/29 11:10, 30F

03/29 14:24, , 31F
喔喔 對不起 我真的很狀況外我弄一下看看
03/29 14:24, 31F

04/07 15:56, , 32F
搞定了 多謝 哥
04/07 15:56, 32F
文章代碼(AID): #1OsCRCRO (R_Language)
文章代碼(AID): #1OsCRCRO (R_Language)