Получить ключевое слово из имени файла в R

В коде VS просто нажмите «Пробел: 4» в правом углу и измените его на вкладку при редактировании Makefile.

1
задан G5W 6 March 2019 в 16:32
поделиться

4 ответа

Вы можете сделать это с помощью sub и регулярного выражения.

FileNames = c("protein_class_Abcd.txt",
"protein_class_Egh.txt",
"protein_class_Bdc.txt")

sub("protein_class_(.*)\\.txt", "\\1", FileNames)
[1] "Abcd" "Egh"  "Bdc" 
0
ответ дан G5W 6 March 2019 в 16:32
поделиться

Если вы используете настройку, которая допускает выражения Perl, вы можете использовать положительный взгляд (?<=pattern), чтобы получить текст, следующий за "protein_class_". Пакеты stringi и stringr делают это по умолчанию и имеют простые в использовании функции извлечения.

files <- c("protein_class_Abcd.txt", "protein_class_Egh.txt", "protein_class_Bdc.txt")
stringr::str_extract(files, "(?<=protein_class_)[A-Za-z]{3,4}")
#> [1] "Abcd" "Egh"  "Bdc"

Создано в 2019-03-06 при помощи пакета представитель (v0.2.1)

0
ответ дан camille 6 March 2019 в 16:32
поделиться

Вы можете использовать регулярное выражение.

gsub("^protein_class_([a-zA-Z]{3,4})\\.txt$","\\1",x)

Где x - ваш входной вектор из трех или более имен файлов.

Здесь \\1 относится к извлечению первой группы захвата, которая включена в (). В данном случае это [a-zA-Z]{3,4}. Это означает, что мы хотим сопоставить 3-4 буквы a-z или A-Z между protein_class_ и .txt.

0
ответ дан Sada93 6 March 2019 в 16:32
поделиться

Вы могли бы сделать ...

substr(x, 15, nchar(x)-4)

или программно

prefix  = "protein_class_"
postfix = ".txt"
substr(x, nchar(prefix)+1, nchar(x)-nchar(postfix))
0
ответ дан Frank 6 March 2019 в 16:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: