首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个范畴变量之间形成冲积图的数据?

在两个范畴变量之间形成冲积图的数据?
EN

Stack Overflow用户
提问于 2021-10-20 20:11:10
回答 1查看 101关注 0票数 0

我有一个包含三个分类变量的数据:

  • classification1:"1“、"2”、"3“、"4"
  • classification2:"Low”、"Med“、"High"
  • survival:"1”(活着)、"2“(死了)

dataframe由多个行组成,每个行对应一个行。前20行:

代码语言:javascript
复制
classification1 <- c(4, 3, 1, 2, 3, 1, 2, 2, 2, 2, 1, 1, 4, 2, 2, 1, 2, 1, 3, 2)
classification2 <- c("Medium", "Medium", "Low", "High", "High", "Low", "Medium", "Medium", "High", "Low", "Low", "Low", "High", "High", "Medium", "Low", "Medium", "Low", "Medium", "Medium")
survival <- c(2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1)
df <- data.frame(classification1, classification2, survival)

我想用ggalluvialggplot2一起建一个这样的冲积图,但是我不知道怎么做!

以下代码返回一个错误( Error in FUN(X[[i]], ...) : objet 'Freq' introuvable ),因为我不知道什么是"Freq":

代码语言:javascript
复制
ggplot(data = df, aes(axis1 = classification1, axis2 = classification2, y = Freq)) +
  scale_x_discrete(limits = c("classification1", "classification2"), expand = c(.2, .05)) +
  geom_alluvium(aes(fill = survival)) +
  geom_stratum() +
  geom_text(stat = "stratum", aes(label = after_stat(stratum)))

关于如何格式化我的数据以适应ggaluvial的任何线索

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-20 20:30:56

您可以使用例如dplyr::count来聚合数据集,以添加一个频率如下的列:

代码语言:javascript
复制
library(ggalluvial)
library(dplyr)

df <- df %>% 
  count(classification1, classification2, survival, name = "Freq")

ggplot(data = df, aes(axis1 = classification1, axis2 = classification2, y = Freq)) +
  scale_x_discrete(limits = c("classification1", "classification2"), expand = c(.2, .05)) +
  geom_alluvium(aes(fill = factor(survival))) +
  geom_stratum() +
  geom_text(stat = "stratum", aes(label = after_stat(stratum)))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69652461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档