首页 > 解决方案 > 计算字母序列中的熵

问题描述

我正在尝试计算香农的字母序列熵,例如,

A <- c('A-A-A-A', 'A-B-C-D-E-E', 'A-B-D-F-G-E')

我正在尝试使用 TraMineR 方法来执行此操作,但由于我已经有一个 sequene 对象,因此无法使用 traMineR 包这样做,请参见下文:

http://traminer.unige.ch/doc/seqient.html

有什么建议么?谢谢

标签: rdplyrtidyrentropytraminer

解决方案


也许:

library(TraMineR)
A<- c( 'A-A-A-A', 'A-B-C-D-E-E', 'A-B-D-F-G-E')
B <- as.data.frame(A)
actcal.seq <- seqdef(B)
## Summarize and plot histogram
## of within sequence entropy
actcal.ient <- seqient(actcal.seq)
summary(actcal.ient)
hist(actcal.seq)

在此处输入图像描述

更新:根据 OP 的要求,将熵添加到原始数据中:

 cbind(B, actcal.ient)
#              A   Entropy
#[1]     A-A-A-A 0.0000000
#[2] A-B-C-D-E-E 0.8020465
#[3] A-B-D-F-G-E 0.9207822

推荐阅读