[英]File.exists() doesn't work
我必須是盲人或愚蠢的,但是我不能繼續前進:
我有一個變量sourceName定義為:
sourceName = file.path(dataDatabase, dates[1], paste0(exchange, "_", ticker, "_trade.csv"))
這是這個字符串:
"/home/malejg/goxtrader/data/2014-12-12/Bitfinex_BTC_trade.csv"
當我檢查文件的存在時,得到以下結果:
> file.exists(sourceName)
> [1] TRUE
因此該文件肯定存在。 但是當我在if語句中使用上面的代碼時:
if(file.exists(sourceName)){
some sample code here}
它拋出一個錯誤:
Error in if (file.exists(sourceName)) { : argument is of length zero
這怎么可能? 該代碼在Windows上可以正常運行,因此是否存在一些與Linux相關的問題?
會議信息:
sessionInfo()R版本3.1.2(2014-10-31)平台:x86_64-pc-linux-gnu(64位)
區域設置:[1] LC_CTYPE = en_US.UTF-8 LC_NUMERIC = C
[3] LC_TIME = en_US.UTF-8 LC_COLLATE = en_US.UTF-8 [5] LC_MONETARY = en_US.UTF-8 LC_MESSAGES = en_US.UTF-8 [7] LC_PAPER = en_US.UTF-8 LC_NAME = C [9] LC_ADDRESS = C LC_TELEPHONE = C [11] LC_MEASUREMENT = zh_CN.UTF-8 LC_IDENTIFICATION = C附加的基本軟件包:[1]統計圖形grDevices utils
數據集方法庫其他隨附的軟件包:[1] data.table_1.9.4 xts_0.9-7
zoo_1.7-11通過名稱空間(未附加)加載:[1] chron_2.3-45
grid_3.1.2點陣_0.20-30 plyr_1.8.1 [5] Rcpp_0.11.5
reshape2_1.4.1 stringr_0.6.2 tools_3.1.2
這是一個非常投機的答案。
我可以讓file.exists
返回零長度的邏輯向量,如下所示:
> file.exists(character(0))
logical(0)
因此,我的臨時假設是您錯誤地擦除了本應為文件路徑的變量,並將零長度字符向量傳遞給file.exists
。
從某種意義上講,這意味着isTRUE
是最安全的選項,但就我個人而言,我很難想到將零長度向量傳遞給file.exists
情況對我而言是故意的,我可能想看看該錯誤並修理它。
您應該使用isTRUE()
if (isTRUE(file.exists(sourceName))) {
cat('Found')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.