Сначала вы должны работать с вашими данными, а затем использовать функцию alluvial
:
library(dplyr) # to manipulate data
library(alluvial)
allu <- data %>%
group_by(Diagnose1, Diagnose2, Diagnose3) %>% # grouping
summarise(Freq = n()) # adding frequencies
# here the plot
alluvial(allu[,1:3], freq=allu$Freq)
с данными (Iубрал пробел в именах столбцов):
data <- read.table(text = "id Diagnose1 Diagnose2 Diagnose3
1 Cancer cancer cancer
2 Headache Breastcancer Breastcancer
3 Breastcancer Breastcancer cancer
4 Cancer cancer cancer
5 Cancer Breastcancer Breastcancer
6 Cancer Breastcancer cancer ",header = T)
РЕДАКТИРОВАТЬ
Если у вас есть NA, вы можете попробовать заменить их следующим образом:
# first, you should use the option stringsAsFactor = F in the data, in my case
data <- read.table(text = "id Diagnose1 Diagnose2 Diagnose3
1 Cancer cancer cancer
2 Headache Breastcancer Breastcancer
3 Breastcancer Breastcancer cancer
4 Cancer NA cancer
5 Cancer Breastcancer Breastcancer
6 Cancer Breastcancer cancer ",header = T, stringsAsFactor = F )
# second, replace them with something you like:
data[is.na(data)] <- 'nothing'
Наконец, вы можете построить график, и появится слово, выбранное для замены NA.