在R中的目录中获取文件编号?

时间:2012-10-03 22:22:19

标签: r

在shell中,制作一个目录:

mkdir  /home/test

然后,在“/ home / test”

中创建一个名为“.test”的文件
a=list.files(path = "/home/test",include.dirs = FALSE)
a
character(0)
a=list.files(path = "/home/test",include.dirs = TRUE)
a
character(0)
a=list.files(path = "/home/test/",include.dirs = TRUE)
a
character(0)
list.files(path = '/home/test', all.files=TRUE,inclued.dirs=FALSE)
[1] "."     ".."    ".test"
a=list.files(path = '/home/test', all.files=TRUE)
length(a)
[1] 3

如何使用length(a)中的正则表达式参数pattern=来修剪list.files.

1 个答案:

答案 0 :(得分:0)

使用all.files=TRUE显示所有文件名,包括隐藏文件。

list.files(path = '/home/test', all.files=TRUE)

要回答您的修改,一种方法是使用带有tail

的负数
tail(list.files(path = '/home/test', all.files=TRUE), -2)

仅使用pattern参数:

list.files(path='/home/test', all.files=TRUE, pattern="^[^\\.]|\\.[^\\.]")

pattern说"任何以点以外的东西开头的任何东西,或以点开头,后跟除点之外的任何东西。"


虽然它违反了您使用pattern的{​​{1}}参数的要求,但在这种情况下,我实际上可能会将list.files包裹在grep附近。

list.statements

上面会找到任何只包含点的文件名,然后返回其他所有内容。 grep("^\\.*\\.$", list.files(path='/home/test', all.files=TRUE), invert=TRUE, value=TRUE) 表示"找到与#34;不匹配的名称,invert=TRUE表示"返回姓名而不是其位置。"