如何将list.files()输出转换为int?

时间:2017-04-14 17:32:11

标签: r if-statement control-structure

使用R的list.files()检查空目录时的输出是字符串...

> 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)

我不确定我是否理解逻辑和布尔值之间的区别,但为什么这不像整数零呢?

1 个答案:

答案 0 :(得分:2)

尝试:

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

character(0)表示某些像空变量。这就是为什么在没有length()属性

的情况下你无法求和或将其转换为0的原因