2017-04-14 156 views
0

檢查有R的list.files()空目錄時,輸出是一個字符串...如何將list.files()輸出轉換爲int?

> list.files('/home/someDir') 
character(0) 

但我想,以測試其長度,並用它在控制結構像

> current <- '/home/someDir' 
> dirPick <- function(){ 
    tryCatch(
     if (length(list.files(current) > 0)) { 
     dirData <- current 
     } else { 
     dirData <- old 
     } 
    ) 
    } 

但通過list.files()返回的對象並不像我期望:

> list.files('/home/someDir') == 0 
logical(0) 


> as.numeric(list.files('/home/someDir')) == 0 
logical(0) 

不知道我理解的不同ence之間的邏輯和布爾值,但爲什麼這不只是一個整數零?

回答

2

嘗試:

length(list.files('/home/someDir')) == 0 

character(0)表示一些像一個空變量。這就是爲什麼如果沒有length()屬性

+0

或者'!length(...)',但是不能將它們相加或轉換爲0,儘管這可能不太可讀。 – Frank