序列中的转换
transitions in a sequence
我有一个数据集,我想知道转换的概率。
所以我有三个这样的字母表(13 个州),它们是可能的:
CCE CRE DEE FOE GOE ICE MEE PCE PRE PSE RLE WAE
例如,
# 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)
我想得到字母之间的转换,例如在总转换中(假设 A、B、C、D 是不同的状态,有多少是到其他状态的?),
我期望输出如下:
B 这里是按顺序发生的总转换
C 这里是到其他状态的总转换
df$C
1
0
3
0
您可以使用基础 R 中的 rle
,
sapply(strsplit(A, '-'), function(i)length(rle(i)$lengths) - 1)
#[1] 1 0 3 0
您可以使用基础 R 中的 gsub:
str_count(gsub('(\w+)(-?\1)+','\1', A),'-')
编辑:
要获得唯一计数,只需将您的结果加 1
我有一个数据集,我想知道转换的概率。
所以我有三个这样的字母表(13 个州),它们是可能的: CCE CRE DEE FOE GOE ICE MEE PCE PRE PSE RLE WAE
例如,
# 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)
我想得到字母之间的转换,例如在总转换中(假设 A、B、C、D 是不同的状态,有多少是到其他状态的?),
我期望输出如下:
B 这里是按顺序发生的总转换 C 这里是到其他状态的总转换
df$C
1
0
3
0
您可以使用基础 R 中的 rle
,
sapply(strsplit(A, '-'), function(i)length(rle(i)$lengths) - 1)
#[1] 1 0 3 0
您可以使用基础 R 中的 gsub:
str_count(gsub('(\w+)(-?\1)+','\1', A),'-')
编辑: 要获得唯一计数,只需将您的结果加 1