使用R

时间:2016-12-30 10:17:26

标签: r traminer

在浏览TraMIner上的文档时,我发现绘制前10个频繁出现的序列的最简单方法是使用seqfplot。以下代码适用于mvad数据集。

  library(TraMineR)
  data("mvad")
  mvad.labels <- c("employment", "further education", "higher education", 
                   "joblessness", "school", "training")
  mvad.scode <- c("EM", "FE", "HE", "JL", "SC", "TR")

  mvad.seq <- seqdef(mvad, 17:86, states = mvad.scode, labels = mvad.labels)

  seqfplot(mvad.seq, withlegend = F, border = NA, title = "Sequence frequency
  plot")

我想以类似的方式绘制20个最不频繁发生的序列。有没有方便的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

计算不同序列的数量,然后使用tlim绘制最后的20个。

l <- length(seqtab(mvad.seq, tlim = 1:1000))

seqfplot(mvad.seq, withlegend = F, border = NA, title = "Sequence frequency
  plot", tlim=(l-20):l)

enter image description here

然而,这并没有多大意义:对于大多数数据集,大量序列将是唯一的并且频率为1 / n。检查seqtab(mvad.seq, tlim = 1:1000)的结果。这意味着:

  1. 该图将显示具有相同频率的序列:没有必要绘制它。
  2. 20个“最后”序列是在频率1 / n的许多序列中任意选择的:它们不是最后一个,而是它们的一个子集。