R - список файлов из каталога, кроме шаблона - PullRequest
0 голосов
/ 12 марта 2019

Я использую следующий код для вывода списка файлов из определенного каталога:

p<-"my_path"
dir(p)

 [1] "00_Iniciar.r"                 "01_01_Carga_diario.r"         "01_Carga_continuos.r"        
 [4] "02_01_Carga_intervenciones.r" "02_02_Carga_young.r"          "02_03_Carga_hrsd.r"          
 [7] "02_Carga_discretos.r"         "03_Carga_eventos.r"           "04_graficos.r"               
[10] "0x_bin.r"                     "desktop.ini"                  "graficos"  

Как мне перечислить все из них, кроме "desktop.ini", используя параметр "pattern"?.

Спасибо

Ответы [ 2 ]

4 голосов
/ 12 марта 2019

Использование grep также может сделать это:

grep(dir(p), pattern = "^desktop\\.ini$", value = TRUE, invert = TRUE)

Установка value = TRUE заставляет grep возвращать значения, соответствующие pattern совпадениям. Кроме того, invert = TRUE заставляет grep возвращать все значения для не попаданий.

1012 * В качестве альтернативы *

grep(dir(p), pattern = "desktop.ini", value = TRUE, invert = TRUE, fixed = TRUE)

эквивалентно, как указано @dww в комментариях.

Демонстрация, которая работает, следует. Исключить все файлы .html, найденные в библиотеке базовых пакетов;

grep(dir(system.file(), recursive = TRUE), 
     pattern = "\\.html$", value = TRUE, invert = TRUE)
# [1] "CITATION"              "demo/error.catching.R" "demo/is.things.R"      "demo/recursion.R"     
# [5] "demo/scoping.R"        "DESCRIPTION"           "help/aliases.rds"      "help/AnIndex"         
# [9] "help/base.rdb"         "help/base.rdx"         "help/paths.rds"        "html/R.css"           
#[13] "INDEX"                 "Meta/demo.rds"         "Meta/features.rds"     "Meta/hsearch.rds"     
#[17] "Meta/links.rds"        "Meta/package.rds"      "Meta/Rd.rds"           "R/base"               
#[21] "R/base.rdb"            "R/base.rdx"            "R/Rprofile"           
0 голосов
/ 13 марта 2019

Я нахожу решение .. но я думаю, что оно может быть улучшено ..

dir(p,pattern="^([^d]|d[^e]|de[^s]|des[^k]|desk[^t]|deskt[^o]|deskto[^p])")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...