计算字母序列中的熵

calculating entropy in a sequence of letters

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

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

我正在尝试使用 TraMineR 方法来这样做,但是由于我已经有一个序列对象,所以我无法使用 traMineR 包来这样做,见下文:

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

有什么建议吗?谢谢

也许:

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