首页 > 解决方案 > 当我在 table(A,B) 中传递两个输入时,如何过滤 R 中的 table() 函数

问题描述

我试图制作频率表子部分的热图。当我在表(A,B)中传递两个输入时,如何过滤 R 中的表()函数。

我尝试了类似的东西

tbl <-  table(A,B)
tbl[tbl>=10]

但我只是在没有关于它是什么信息的情况下取回频率。

标签: r

解决方案


这样做

tbl <- as.data.frame(table(A, B))

它应该为您提供三列data.frameA,,这对于您的热图应该足够了,代码类似于此示例工作B示例Freq

library(stringi)
library(dplyr)
library(ggplot2)

n <- 10000
A <- stri_rand_shuffle(stri_rand_strings(n, 1, '[a-z]'))
B <- stri_rand_shuffle(stri_rand_strings(n, 1, '[a-z]'))

tbl <- as.data.frame(table(A, B)) %>%
  arrange(A, B) %>%
  filter(Freq >= 10)
ggplot(data = tbl, aes(x = A, y = B, fill = Freq)) +
  geom_tile()

在此处输入图像描述


推荐阅读