Есть ли функция R для извлечения числа из имени пути? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть список файлов для чтения из папки. Некоторые из них в формате csv, а некоторые в формате pp. У меня есть две отдельные функции для чтения файлов, в зависимости от того, в каком формате это.

В настоящее время у меня есть список файлов с помощью команды list.files. Я хотел бы создать словарь, сопоставляющий идентификатор с соответствующим именем файла, например, 100 сопоставляется с /Users/Bob/Box/here/is/some/data/100.csv, а 50 сопоставляется с / Users/Bob/Box/here/is/some/data/50.pp.

Я перебираю другой набор идентификаторов, поэтому предполагается, что назначение словаря облегчает извлечение пути, соответствующегоудостоверение личностиЕсть ли способ построить этот словарь? Я подумал, может быть, если есть способ автоматически извлечь идентификатор из пути при обработке папки?

1 Ответ

0 голосов
/ 07 ноября 2019

Я нашел решение здесь: https://stla.github.io/stlapblog/posts/Numextract.html

Чтобы извлечь число из символьного вектора, вы можете использовать библиотеку stringr и создать функцию для извлечения числа:

> library(stringr)
> numextract <- function(string){str_extract(string, "[-+]?[0-9]*\\.?[0-9]+")
}  
> numextract("30.5ml")
[1] "30.5"

# With your example:
> numextract("/Users/Bob/Box/here/is/some/data/++---100.csv")
[1] "-100."

# you can add 'as.numeric' to extract only numerical value
> as.numeric(numextract("/Users/Bob/Box/here/is/some/data/++---100.csv"))
[1] -100

Это то, что вы ищете?

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