Моя цель - проанализировать структурированный текстовый файл и извлечь 4 уникальных идентификатора во фрейм данных R.
В качестве первого шага я запустил
c <- read_lines("minex_cochrane.txt")
Тогда, учитывая символьный вектор c, где каждый элемент является линией.
c <- c("Record #1 of 3", "ID: CN-00966682", "TI: A multi-center, randomized controlled trial of a group psychological intervention for psychosis with comorbid cannabis dependence over the early course of illness",
"SO: Schizophrenia research", "YR: 2013", "VL: 143", "NO: 1",
"CC: Drugs and Alcohol", "PG: 138‐142", "PM: PUBMED 23187069",
"PT: Journal Article; Multicenter Study; Randomized Controlled Trial",
"DOI: 10.1016/j.schres.2012.10.018", "US: https://www.cochranelibrary.com/central/doi/10.1002/central/CN-00966682/full",
"", "", "Record #2 of 3", "ID: CN-00917992", "TI: Effectiveness of a self-guided web-based cannabis treatment program: randomized controlled trial",
"SO: Journal of medical internet research", "YR: 2013", "VL: 15",
"NO: 2", "PG: e26", "PM: PUBMED 23470329", "XR: EMBASE 23470329",
"PT: Journal Article; Randomized Controlled Trial; Research Support, Non‐U.S. Gov't; Research Support, U.S. Gov't, Non‐P.H.S.",
"KY: Adult; Australia; Female; Health Behavior; Humans; Internet; Male; Marijuana Abuse [psychology, *therapy]; Outcome Assessment (Health Care); Self Care; Telemedicine [*methods]; Therapy, Computer‐Assisted; Treatment Outcome; Young Adult",
"DOI: 10.2196/jmir.2256", "US: https://www.cochranelibrary.com/central/doi/10.1002/central/CN-00917992/full",
"", "", "")
Следующее обнаруживает, а затем очищает мои нужные уникальные идентификаторы.
library(stringr)
id_l <- str_detect(c, "ID: ")
id_vec <- c[id_l == TRUE]
id <- str_replace(id_vec, "ID: ", "")
pmid_l <- str_detect(c,"PM: PUBMED")
pmid_vec <- c[pmid_l == TRUE]
pmid <- str_replace(pmid_vec, "PM: PUBMED ", "")
cs <- cbind(id, pmid)
Получение следующего вывода по желанию.
> cs
id pmid
[1,] "CN-00966682" "23187069"
[2,] "CN-00917992" "23470329"
Однако это кажется слишком громоздким. Я хотел бы улучшить свой код, чтобы сделать это более компактным и эффективным способом для облегчения анализа большого файла.