transições em uma sequência
Nov 10 2020
Eu tenho um conjunto de dados e gostaria de saber a probabilidade de transição.
Portanto, tenho três alfabetos como este (13 estados) que são possíveis: CCE CRE DEE FOE GOE ICE ISE MEE PCE PRE PSE RLE WAE
Por exemplo,
# A<- c('A-A-A-B', 'A-A-A-A', 'A-B-C-D', 'A-A')
A<- c('CCE-CRE-DEE-DEE', 'FOE-FOE-GOE-GOE-GOE-ISE', 'ISE-PCE', 'ISE')
library('stringr')
B<- str_count(A, "-")
df<- data.frame(A, B)
Eu gostaria de obter a transição entre as letras, por exemplo, nas transições totais (quantas são para outros estados assumindo que A, B, C, D são estados diferentes?),
Estou esperando a saída da seguinte forma:
B aqui é o total de transições ocorrendo na sequência C aqui está o total de transições para outros estados
df$C
1
0
3
0
Respostas
1 Sotos Nov 10 2020 at 15:47
Você pode usar rleda base R,
sapply(strsplit(A, '-'), function(i)length(rle(i)$lengths) - 1)
#[1] 1 0 3 0
1 Onyambu Nov 10 2020 at 16:00
Você pode usar gsub da base R:
str_count(gsub('(\\w+)(-?\\1)+','\\1', A),'-')
EDITAR: para obter as contagens únicas, basta adicionar 1 aos resultados que você obteve
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?