首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为盒图和计算变量的演化而旋转数据集

为盒图和计算变量的演化而旋转数据集
EN

Stack Overflow用户
提问于 2022-08-10 15:18:10
回答 1查看 37关注 0票数 0

我试图用三个方框来编写一个图,每年一幅(N2,N1和N)。我要绘制变量"DMS“。

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

mean_DMS_2021 <- NCN_dataset %>%
   filter(type_de_sejour == "Hospitalisé")%>%
   group_by(code_2)%>%
   summarise(mean_DMS_hosp_N = mean(as.numeric(DMS_hosp_N)))

mean_DMS_2020 <- NCN_dataset %>%
  filter(type_de_sejour == "Hospitalisé")%>%
  group_by(code_2)%>%
  summarise(mean_DMS_hosp_N1 = mean(as.numeric(DMS_hosp_N1)))

mean_DMS_2019 <- NCN_dataset %>%
  filter(type_de_sejour == "Hospitalisé")%>%
  group_by(code_2)%>%
  summarise(mean_DMS_hosp_N2 = mean(as.numeric(DMS_hosp_N2)))

mean_DMS_hosp_19_20 <- as.data.frame(merge(mean_DMS_2019, mean_DMS_2020))
mean_DMS_hosp <- as.data.frame(merge(mean_DMS_hosp_19_20, mean_DMS_2021))
View(mean_DMS_hosp)

# I here show the mean of DMS for each year, all specialties together. 

boxplot(mean_DMS_hosp$mean_DMS_hosp_N2)
boxplot(mean_DMS_hosp$mean_DMS_hosp_N1)
boxplot(mean_DMS_hosp$mean_DMS_hosp_N)

我试图将我的数据转向,因为理想情况下,我希望每年绘制一个变量DMS的盒形图,以便查看该变量多年来分布的演变情况,然后是每个专业或每个"nom“方面(或任何其他能够显示不同专业之间的差异):要么只保留变量DMS的观测值之间差异最大的特性,要么过滤只保留多年来进化最多的DMS (我猜我必须创建几个显示DMS在N2和N1之间、N1和N之间的演化的变量,N2与N之间的平均年增长率)。

代码语言:javascript
复制
 library(data.table)

 NCN_dataset_long  <- melt(data.table::setDT(NCN_dataset), 
                          measure.vars=list(c(4,5,6), c(7,8,9) , c(10,11,12)),
                          variable.name='time_year', 
                      value.name=c('sejour', 'CA',"DMS"))[,
                                                          time_year:= 
 paste0('N',time_year)][order(nom,type_de_sejour, code_2, site)]

以下是我的数据集的结构,用于重现性:

代码语言:javascript
复制
setDT(structure(list(nom = c("CHRISTOPHE", "CHRISTOPHE", 
"PABLO", "JEAN-MARC", "YVES", 
"GUILLAUME"), type_de_sejour = c("Ambulatoires", 
"Externes", "Ambulatoires", "Ambulatoires", "Ambulatoires", "Ambulatoires"
), code_2 = c("Ortho", "Ortho", "Neuro Chir", "Cardio", "Radio", 
"ARE"), sejours_N2 = c(1046, 0, 4, 6, 4, 4), sejours_N1 = c(1001, 
1, 77, 26, 9, 1), sejours_N = c(1078, 0, 115, 140, 9, 1), CA_N2 = c(609862, 
0, 2002, 3296, 1457, 1253), CA_N1 = c(597436, 24, 119573, 22098, 
3026, 322), CA_N = c(668426, 0, 196852, 134095, 3454, 345), DMS_hosp_N2 = c("0", 
"0", "0", "0", "0", "0"), DMS_hosp_N1 = c("0", "0", "0", "0", 
"0", "0"), DMS_hosp_N = c("0", "0", "0", "0", "0", "0"), site = c("PGS", 
"PGS", "FRA", "FRA", "PGS", "FRA")), row.names = c(NA, -6L), class = c("data.table", 
"data.frame")))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-11 11:38:03

我在这里使用CA,因为你的DMS都是零。

代码语言:javascript
复制
library(ggplot2)
library(tidyr) # pivot_longer
pivot_longer(NCN_dataset, -c(nom, type_de_sejour, code_2, site), names_pattern = "(.*)_(N.*)", names_to = c(".value", "time_year")) |>
  ggplot(aes(x=time_year, y=CA)) +
  geom_boxplot()

您可以通过对数值属性使用x=y=美学来控制方向。

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

https://stackoverflow.com/questions/73308812

复制
相关文章

相似问题

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