簡體   English   中英

File.exists()不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM