Tenho uma variável de ID que vem de 35 hospitais diferentes, então tem arranjos diferentes da variável e, às vezes, tem o mesmo número de ID raiz com um número de linha secundário - por exemplo, -1, /a, _1 etc.
Quero remover a pontuação e tudo o que vier depois dela, deixando apenas o número de ID raiz.
No momento, consegui escrever linhas individuais de código para cada iteração diferente, mas queria saber se há uma maneira mais elegante para que, no ano que vem, quando os dados chegarem, eu não precise verificar arranjos diferentes?
Na pergunta de outra pessoa, consegui encontrar uma maneira de remover os colchetes e todo o texto dentro dos colchetes, mas não consigo descobrir como manipulá-lo para meus propósitos
df$patid<- gsub("\\s*\\([^\\)]+\\)","",df$patid)
Eu tentei esses dois códigos sem sucesso
df$patid<- gsub("\\[:punct:]s*$","", df$patid)
df$patid<- gsub("\\[:alnum:]s*$","", df$patid)
Também tentei a clean
função que removeu toda a pontuação, mas manteve os números/caracteres depois delas, então não foi isso.
exemplo do meu código atual (nem todas as iterações possíveis) - Estas funcionam
df$patid<- gsub("\\-1$", "", df$patid)
df$patid<- gsub("\\-2$", "", df$patid)
df$patid<- gsub("\\-3$", "", df$patid)
df$patid<- gsub("\\-a$", "", df$patid)
df$patid<- gsub("\\-A$", "", df$patid)
df$patid<- gsub("\\-b$", "", df$patid)
df$patid<- gsub("\\-B$", "", df$patid)
df$patid<- gsub("\\b", "", df$patid)
df$patid<- gsub("\\/dd", "", df$patid)
Não estou preso a gsub
, estou aberto a diferentes métodos.
Exemplo de números de identificação
patid<- c("MB-13-169454", "MB-13-179455", "MB-13-212235.1", "MB-13-212235.2", "MB-13-224683", "570548260-2", "570548260-3", "1458629P-2", "1139093D-2", "8253015N/2", "8253015N/3", "M255858/1", "M255858/2", "8494392Q/2", "9296741B/2", "04152341421/A", "04152341421/B", "04152640475/B", "04152821164/A", "G140381883_1", "G140381883_2", "G140880774_1", "G140880774_2")
Peço desculpas se isso já foi respondido em algum lugar