我有一个包含三个分类变量的数据:
dataframe由多个行组成,每个行对应一个行。前20行:
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)我想用ggalluvial和ggplot2一起建一个这样的冲积图,但是我不知道怎么做!

以下代码返回一个错误( Error in FUN(X[[i]], ...) : objet 'Freq' introuvable ),因为我不知道什么是"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 = survival)) +
geom_stratum() +
geom_text(stat = "stratum", aes(label = after_stat(stratum)))关于如何格式化我的数据以适应ggaluvial的任何线索
发布于 2021-10-20 20:30:56
您可以使用例如dplyr::count来聚合数据集,以添加一个频率如下的列:
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)))

https://stackoverflow.com/questions/69652461
复制相似问题