2017-04-14 132 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