2014-01-10 21 views
1

我剛學R,所以這可能是一個簡單的問題R:如果(file.exists(

我有一大堆的代碼,我想運行如果先前在產生一定的文件路徑代碼的存在。所以...創建

2.如果路徑中存在

1.A路徑,然後將其餘代碼應該運行

這是什麼代碼看起來這部分如:

label_file=paste(label_folder,"Files/",as.matrix(babble_data)[n,3],label_extension,sep="") 

if (file.exists(label_file){... 

它運行時沒有給我任何錯誤,但它正在處理每個文件路徑(即使存在的文件路徑),就像不存在一樣。

我的語法不正確嗎?我能找到的所有例子都是這樣的,所以我不知道它爲什麼不按照它應有的工作。任何想法?謝謝。

+0

爲什麼不直接將所有路徑保存在列表中並使用列表中的每個元素(文件路徑)執行操作? – rawr

+0

創建'label_file'後,將其打印出來,看看它的值是否正確。你沒有向我們展示過'label_folder'(最後是否有正斜槓?)和'label_extension'(它有一段時間在開始?),所以很難調試這個問題。 – josliber

回答

0

您在曲線括號之前的if語句中缺少結束圓括號。這可能會有所有可能的副作用,儘管代碼分析錯誤是最可能的。

此外,as.matrix(babble_data)[n,3]可以產生一個結果向量,所以paste可以產生一個文件名向量,if (file.exists(將失敗。