4

我正在使用 R 包 TraMineR 来计算和分析状态序列。我想使用命令 seqfplot 获得序列频率图。但是,不是设置要绘制的最频繁序列的数量,而是使用

seqfplot(mydata.seq, tlim=1:20)

设置需要达到的最频繁序列的百分比(例如,样本的 50%)会很有用。我试过这个

seqfplot(mydata.seq, trep = 0.5)

但是 - 不同于seqrep.grp和- 命令不支持seqrep该选项。我应该创建一个新功能来做到这一点吗?trepseqfplot

谢谢你。

4

1 回答 1

5

你是对的,trep参数是 TraMineRseqrep函数的一个参数,它寻找至少覆盖trep所有序列百分比的代表性序列。

如果您特别想要最频繁的序列模式,使其累积百分比频率为 50%,那么您必须自己计算选择过滤器。以下是使用 biofam 数据的方法。

library(TraMineR)
data(biofam)
bf.seq <- seqdef(biofam[,10:25])

## first retrieve the "Percent" column of the frequency table provided 
## as the  "freq" attribute of the object returned by the seqtab function.

bf.freq <- seqtab(bf.seq, tlim=nrow(bf.seq))
bf.tab <- attr(bf.freq,"freq")
bf.perct <- bf.tab[,"Percent"]

## Compute the cumulated percentages
bf.cumsum <- cumsum(bf.perct)

## Now we can use the cumulated percentage to select
## the wanted patterns
bf.freq50 <- bf.freq[bf.cumsum <= 50,]

## And to plot the frequent patterns
(nfreq <- length(bf.cumsum[bf.cumsum <= 50]))
seqfplot(bf.seq, tlim=1:nfreq)

希望这可以帮助。

于 2013-07-03T12:47:09.550 回答