我有一個包含三個分類變數的資料框:
- 分類1:“1”、“2”、“3”、“4”
- 分類2:“低”、“中”、“高”
- 生存:“1”(活著),“2”(死)
資料框由多行組成,每個人一行。前 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)
我想用ggalluvialwithggplot2來構建這樣的沖積圖,但我不知道怎么做!

以下代碼回傳錯誤 (
Error in FUN(X[[i]], ...) : objet 'Freq' introuvable
),因為我無法弄清楚什么是“頻率”:
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?
uj5u.com熱心網友回復:
您可以使用例如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://www.uj5u.com/houduan/335802.html
