我又重開一個文件獨立測試指令
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://webptt.com/m.aspx?n=bbs/R_Language/M.1490601676.A.6D8.html
1F:→ x88776544pc: 可以多給點資訊, 像RR的物件形態, error message等 03/27 19:39
2F:→ Wush978: file. 開頭的函數呢? 03/27 23:34
3F:→ BUQ: mode(RR) [1] "character" 03/28 09:02
4F:→ BUQ: 也不一定要那一行 我有很多部分需要路徑處理 03/28 09:03
5F:→ BUQ: 再一個例子 03/28 09:03
6F:→ BUQ: dev.copy2pdf(file="C:/Users/Desktop/test/LUNGCIRC.pdf") 03/28 09:04
7F:→ BUQ: 我自以為是跟RR無關..啦 不知道有沒有猜錯 03/28 09:04
8F:→ locka: 看不懂原PO說的自動化是甚麼意思...如果是要把不同的資料 03/28 09:17
9F:→ locka: 寫到list中的路徑,用paste0()+*apply系列函數應該就能做到 03/28 09:18
10F:→ locka: 但原PO說失敗...請問是怎麼個失敗法呢? 03/28 09:20
※ 編輯: BUQ (140.135.58.147), 03/28/2017 09:52:13
11F:→ BUQ: 我內文改寫了 應該會比較清楚 謝謝大大們Y 03/28 09:53
※ 編輯: BUQ (140.135.58.147), 03/28/2017 09:54:20
12F:→ locka: 把paste()裡面的東西print出來檢查看看就可以知道了呀~ 03/28 10:04
13F:→ locka: 話說如果kk是list的話,paste()裡面應該是要放kk[i]吧 03/28 10:05
14F:→ BUQ: 對 少打了 03/28 10:06
15F:→ locka: 你每個不同檔名的csv檔內容都是RR? 03/28 10:10
16F:→ BUQ: 對 03/28 10:54
17F:→ locka: sapply(kk,function(x){write.csv(RR,paste0(a,x,".csv")}) 03/28 11:04
18F:→ locka: 推文長度關係將"C:/Users/Desktop/test/"簡化為a 03/28 11:06
19F:→ BUQ: 喔...謝謝我試看看 03/28 11:24
※ 編輯: BUQ (140.135.58.147), 03/28/2017 15:19:05
※ 編輯: BUQ (175.96.64.25), 03/28/2017 15:21:15
20F:→ locka: 他沒有說你錯,只是警告你正在嘗試把某欄寫到檔案裡而不是預 03/28 15:27
21F:→ locka: 設的data frame或是matrix格式...see help(write.table) 03/28 15:28
22F:→ BUQ: 第一部分成功 謝謝哥.... 03/28 15:39
23F:→ locka: 沒用過第2個但你dev.copy2pdf(file=paste(...)後面就沒了耶 03/28 15:51
24F:→ BUQ: 少打一個括號 03/28 16:02
25F:→ BUQ: 我去補上 03/28 16:02
※ 編輯: BUQ (140.135.58.147), 03/28/2017 16:02:53
26F:→ locka: 所以第2個的錯誤訊息是...? 03/28 16:05
27F:→ BUQ: 就如 錯誤碼寫的那樣啊 03/28 22:16
※ 編輯: BUQ (140.135.58.147), 03/29/2017 10:52:22
28F:→ BUQ: 我有 改了一下 看會不會比較清楚 03/29 10:52
29F:→ locka: 會出現+號就是因為你指令少了一個右括號的關係...沒打完當 03/29 11:09
30F:→ locka: 然停在那邊啊,那不是錯誤碼。 03/29 11:10
31F:→ BUQ: 喔喔 對不起 我真的很狀況外我弄一下看看 03/29 14:24
32F:→ BUQ: 搞定了 多謝 哥 04/07 15:56