如何很好地绘制置换矩阵

How to nicely plot a permutation matrix

我有一串字母:

x <- c("a","o","s","d", "#")

(#表示开始或结束)

和一个英文单词向量:

engl <- c("#so#", "#sad#", "#do#", "#as#", "#Dads#", "#do#")

我们可以像这样创建 x 中字母所有可能组合的矩阵:

df <- as.data.frame(outer(x, x, FUN = paste0)) dimnames(df) <- list(x, x)

df: aa ao as ad a# oa oo os od o# sa so ss sd s# da do ds dd d# #a #o #s #d ##

假设我想通过搜索向量 engl 并用分布填充数据帧 df,按列或按行回答问题 "what is the percentage of the distribution of d":[=17 来了解这些组合中的每一个以英语出现的频率=]

所以在此处给出的情况下,我们将有

0 0 1 2 0 0 0 0 0 2 1 0 0 0 3 1 2 1 0 1 2 0 1 3 0

我该如何解决这个问题,因为 str_count 不适用于矩阵?

在下一步中,我想以类似热图的方式显示矩阵,

创建对矩阵 m。然后创建一个计数数组 a 和一个热图。没有使用包。

m <- outer(x, x, paste0)
a <- array(colSums(sapply(m, grepl, engl)), dim = dim(m), dimnames = list(x,x))
heatmap(a)