Tenho uma lista de personagens como esta:
list <- c('a_b', 'a_c', 'a_d', 'a_e', 'a_b', 'b_a', 'b_c', 'b_c','c_b')
Quero ter uma lista de caracteres únicos sem mais 'b_a', 'c_b'. Tentei unique(), mas ele não consegue remover 'b_a' e 'c_b'. Espero receber alguma ajuda sobre isso. Muito obrigado!
Você poderia usar
strsplit()
para dividir os dois caracteres, então classificá-los em ordem alfabética e colá-los novamente. Isso se transformará"b_a"
em"a_b"
. Então você poderia obter os valores exclusivos das strings classificadas.Criado em 2025-02-05 com reprex v2.1.1
Outra opção seria primeiro classificar os caracteres em cada sequência da sua lista e remover
duplicated
as entradas:Outra maneira de fazer isso é usar a base R
utf8toInt
para classificar strings:Tomando emprestados dados da solução de @DaveArmstrong , você pode tentar
o que dá
Isso é exagero para este exemplo simples, mas conceitualmente eu pensaria nisso como um gráfico não direcionado. Podemos usar
strcapture()
para criar um data frame do seu vetorl
e usarigraph::graph_from_data_frame()
para construir o gráfico:Se
plot(g)
veríamos algo como:Podemos então extrair as arestas e
paste()
juntá-las: