A primeira modificação que faria no seu *script* seria mudar a chamada a grep passando value para TRUE.
Depois tratar os casos conforme sua nova especificação, que me parece muda a ordem da impressão do medicamento e coloca a substância à direita. *caveat lector* : conceito não testado‼ HTH -- Cesar Rabak On Fri, Mar 5, 2021 at 5:46 PM Felipe Barletta por (R-br) < [email protected]> wrote: > Prezados, > > Preciso de uma ajuda para resolver a seguinte questão: > > Possuo uma lista de nomes de medicamentos. Preciso identificar seus nomes > em um vetor em que há informações de medicamentos preescritos. > Para isso estou usando a função grep(). > Após identificar, quero incluir no data frame uma nova coluna contendo o > nome do medicamento da primeira lista. > Segue um código reproduzível > > ##### Lista de medicamentos que guardei em um objeto chamado patterns > patterns <- > structure(c(1L, 2L, 3L, 4L, 6L, 7L, 5L, 8L, 9L, 10L, 11L), .Label = > c("Oritavancina", > "Oxacilina", "Pefloxacino", "Penicilina", "Pexiganan", "Piperacilina", > "Piperacilina-tazobactam", "Pirazinamida", "Plazomicina", "Polimixina B", > "Posilozid"), class = "factor") > > ### Amostra do Data frame em que preciso encontrar os nomes da lista acima > > df <- > structure(list(nome = structure(c(9L, 11L, 3L, 3L, 7L, 2L, 4L, > 5L, 8L, 6L, 10L, 1L), .Label = c("CLORETO DE POTASSIO DRAGEA 600MG", > "CLORETO DE SODIO 0,9% SERINGA PREENCHIDA 5ML", "CLORETO DE SODIO SOLUCAO > INJETAVEL 0,9% 10ML", > "CODEINA FOSFATO SOLUCAO ORAL 3MGML 10ML ISCMPA @", "CODEINA FOSFATO > SOLUCAO ORAL 3MGML 5ML ISCMPA @", > "DipiRONA SOLUCAO INJETAVEL 500MGML 2ML", "FUROSEMIDA SOLUCAO INJETAVEL > 10MGML 2ML", > "HIDROCORTISONA SUCCINATO SODICO PO LIOFILO INJETAVEL 100MG", > "ONDANSETRONA CLORIDRATO SOLUCAO INJETAVEL 2MGML 4ML", "Penicilina G > BENZATINA PO LIOFILO INJETAVEL 1200000UI", > "PIPERACILINA SODICA 4G + TAZOBACTAM SODICA 0,5G PO LIOFILO INJETAVEL" > ), class = "factor"), ID = c(13750598L, 13797248L, 13797248L, > 13797248L, 13727853L, 13727853L, 13922033L, 13922033L, 13923030L, > 13923030L, 13923030L, 13877978L), date = structure(c(1L, 2L, > 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 5L, 6L), .Label = c("2021-01-01 00:08:14", > "2021-01-01 00:20:39", "2021-01-01 00:22:18", "2021-01-31 23:53:48", > "2021-01-31 23:58:50", "2021-01-31 23:59:47"), class = "factor")), > row.names = c(1L, > 2L, 3L, 4L, 5L, 6L, 583867L, 583868L, 583869L, 583870L, 583871L, > 583872L), class = "data.frame") > > ### Usei esse código para identificar os medicamentos > matches <- unlist(sapply(patterns, function(p) grep(p, df$nome, > value = FALSE, > ignore.case = TRUE) > ) > ) > encontrados <- df[matches,] > > Porém além de identificar, quero incluir no df uma nova variável > identificando o nome do medicamento que consta na lista (patterns) - como > segue exemplo Abaixo: > dados > nome > 1 ONDANSETRONA CLORIDRATO SOLUCAO INJETAVEL 2MGML 4ML > 2 PIPERACILINA SODICA 4G + TAZOBACTAM SODICA 0,5G PO LIOFILO INJETAVEL > 3 CLORETO DE SODIO SOLUCAO INJETAVEL 0,9% 10ML > 4 CLORETO DE SODIO SOLUCAO INJETAVEL 0,9% 10ML > 5 FUROSEMIDA SOLUCAO INJETAVEL 10MGML 2ML > 6 CLORETO DE SODIO 0,9% SERINGA PREENCHIDA 5ML > 583867 CODEINA FOSFATO SOLUCAO ORAL 3MGML 10ML ISCMPA @ > 583868 CODEINA FOSFATO SOLUCAO ORAL 3MGML 5ML ISCMPA @ > 583869 HIDROCORTISONA SUCCINATO SODICO PO LIOFILO INJETAVEL 100MG > 583870 DipiRONA SOLUCAO INJETAVEL 500MGML 2ML > 583871 Penicilina G BENZATINA PO LIOFILO INJETAVEL 1200000UI > 583872 CLORETO DE POTASSIO DRAGEA 600MG > ID date Medicamento > 1 13750598 2021-01-01 00:08:14 Não consta na lista > 2 13797248 2021-01-01 00:20:39 *Piperacilina* > 3 13797248 2021-01-01 00:20:39 Não consta na lista > 4 13797248 2021-01-01 00:20:39 Não consta na lista > 5 13727853 2021-01-01 00:22:18 Não consta na lista > 6 13727853 2021-01-01 00:22:18 Não consta na lista > 583867 13922033 2021-01-31 23:53:48 Não consta na lista > 583868 13922033 2021-01-31 23:53:48 Não consta na lista > 583869 13923030 2021-01-31 23:58:50 Não consta na lista > 583870 13923030 2021-01-31 23:58:50 Não consta na lista > 583871 13923030 2021-01-31 23:58:50 *Penicilina* > 583872 13877978 2021-01-31 23:59:47 Outro medicamento > > > > > _______________________________________________ > R-br mailing list > [email protected] > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
