В R: извлечь номер (дозировку) из текстовой строки в новую переменную - PullRequest
0 голосов
/ 10 апреля 2020

недавно я начал изучать R для анализа данных. У меня есть определенный (CSV) файл данных, который я успешно импортировал в R. Этот набор данных содержит несколько переменных (столбцов), одна из которых - строка, содержащая текст и числа. Я хотел бы извлечь определенное число (являющееся дозами) из этой строки в новую переменную (столбец).

Переменная исходная переменная содержит записи в следующих форматах

source <- c(
  "NIFEDI SDZ RET 30MG TAB MGA", 
  "HYDROCHL THIAZ PCH 12,5MG T",
  "METOPROL SU SDZ RET 200 TAB"
)

Я хотел бы создать переменную (столбец) под названием «дозировки», которая содержит только число

dosages <- c('30', '12,5', '200')

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

Должен ли я сделать это с помощью Gsub, RegEx или какой-либо другой функции, о которой я не узнал? Я попытался использовать функцию поиска и нашел довольно похожие вопросы, но ни один из них не ответил полностью на мои. Хотя я новичок в stackoverflow, поэтому приношу свои извинения, если на этот вопрос ответили, и я не выглядел опрометчиво ..

1 Ответ

2 голосов
/ 10 апреля 2020
Lines = c("NIFEDI SDZ RET 30MG TAB MGA",
  "HYDROCHL THIAZ PCH 12,5MG T",
  "METOPROL SU SDZ RET 200 TAB")

gsub("[^0-9]+([0-9]+(,[0-9])?)(MG)?.*$", "\\1", Lines)
> gsub("[^0-9]+([0-9]+(,[0-9])?)(MG)?.*$", "\\1", Lines)
[1] "30"   "12,5" "200" 

Конечно, они все еще являются строками. Вы можете привести их в числа с помощью as.numeric, но вам нужно что-то сделать с запятыми.

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