Как добавить кавычки в указанное c место в векторе в R? - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть фрейм данных в R, к которому я хотел бы добавить кавычки в определенном c месте. Одна строка этого фрейма данных выглядит следующим образом:

> df
    V1       V2       V3   V4 V5 V6         V7         V8 V9
1 chr9 17025523 17026706 SOX2  .  - ncbiRefSeq transcript  .
                                                        V10
1 gene_id SOX2; transcript_id NM_205188.2;  gene_name SOX2;

Меня интересует последний столбец (df$V10):

> df$V10
gene_id SOX10; transcript_id NM_205188.2;  gene_name SOX10;

И я хотел бы добавить кавычки вокруг каждого слова перед ";" Вывод будет:

> new_df$V10
gene_id "SOX10"; transcript_id "NM_205188.2";  gene_name "SOX10";

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Вы можете использовать регулярное выражение для замены каждого слова, предшествующего ;, словом в кавычках.

s = 'gene_id SOX10; transcript_id NM_205188.2;  gene_name SOX10;'
str_replace_all(s, '([^[:blank:]]+);', '"\\1";')
# "gene_id \"SOX10\"; transcript_id \"NM_205188.2\";  gene_name \"SOX10\";"
0 голосов
/ 19 февраля 2020

Не уверен, нужна ли вам эта мысль

r <- gsub("(.*?\\s)(\\w+)(;)","\\1\"\\2\"\\3",v)

такая, что

> r
[1] "gene_id \"SOX10\"; transcript_id NM_205188.2; gene_name \"SOX10\";"

ДАННЫЕ

v <- 'gene_id SOX10; transcript_id NM_205188.2; gene_name SOX10;'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...