首页 > 解决方案 > 如何很好地绘制置换矩阵

问题描述

我有一串字母:

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 来了解这些组合中的每一个在英语中出现的频率,回答问题列或逐行“d 的分布百分比是多少”:

所以在这里给出的情况下,我们会有

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 不适用于矩阵?

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

标签: rggplot2combinatorics

解决方案


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

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

截屏


推荐阅读