Проблема с list.files (pattern = paste (...)), именами файлов, включая точки и цифры - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь прочитать имена нескольких файлов .RData с помощью функции list.files ().Имена файлов выглядят примерно так: «HadCM3.temp236.run.1.Block.801.950.R2.map.RData» или «HadCM3.temp236.run.1.Block.1151.1300.R2.map.RData».Поскольку я хочу, чтобы вектор имени файла сортировался численно, я также использую функцию str_sort () из пакета stringr.Код выглядит примерно так:

hadcm3.variable <- "temp236"
infile.vect <- str_sort(list.files(pattern = paste("hadcm3.", hadcm3.variable, 
".run.1.block.*.R2.map.RData", sep = ""), ignore.case = TRUE), numeric = TRUE)

Этот раздел кода содержится в гораздо большем сценарии.Самое смешное, что когда я запускаю весь сценарий (RStudio версия 1.1.456, R версия 3.5.1), упомянутая команда не работает, а переменная infile.vect содержит «символ (0)».Однако, когда я выделяю и запускаю только упомянутую команду, она дает желаемый результат, который выглядит следующим образом:

> infile.vect
[1] "HadCM3.temp236.run.1.Block.801.950.R2.map.RData"
[2] "HadCM3.temp236.run.1.Block.811.960.R2.map.RData"
...
[106] "HadCM3.temp236.run.1.Block.1851.2000.R2.map.RData"

Кроме того, я довольно уверен, что упомянутая команда выполняется также, когда весь сценарийвыполняется потому, что команды до и после также выполняются.Рабочий каталог тоже должен быть правильным.Я подозреваю, что у меня есть проблема с регулярными выражениями здесь (точки и множественные числа в именах файлов), но до сих пор не удалось ее решить.Как сделать так, чтобы команда работала вместе с остальным сценарием?Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...