首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否按组显示月度趋势?

是否按组显示月度趋势?
EN

Stack Overflow用户
提问于 2021-11-08 17:00:01
回答 1查看 42关注 0票数 0

我有一个数据框,看起来像这样:

代码语言:javascript
复制
df <- read.table(text = "ID    Date      Freq      Gender      Trt      month   Group
    15 A1 2019-01-29     1       female       1          1      G1                                  
    16 A1 2019-04-27     10      female       1          4      G1                                  
    17 A1 2019-04-27     10      female       1          4      G1                                     
    18 A1 2019-04-29     2       female       1          4      G1                                
    19 A1 2019-04-29     12      female       1          4      G1                                      
    20 A1 2019-10-09     6       female       1          10     G1                                      
    21 A1 2019-12-26     NA      female       1          12     G1                                     
    22 A1 2019-12-26     NA      female       1          12     G1                                     
    27 A1 2019-02-19     5       female       1          2      G1                                    
    28 A2 2019-02-19     15      male         0          2      G3
    37 A3 2019-01-30     NA      female       0          1      G2
    38 A3 2019-01-30     9       female       0          1      G2
    39 A3 2019-02-15     11      female       0          2      G2
    40 A3 2019-02-15     10      female       0          2      G2
    41 A3 2019-03-16     1       female       0          3      G2
    42 A3 2019-04-01     1       female       0          4      G2
    43 A3 2019-04-01     3       female       0          4      G2
    44 A3 2019-04-22     2       female       0          4      G2
    45 A3 2019-05-25     4       female       0          5      G2
    46 A3 2019-05-29     4       female       0          5      G2
    47 A3 2019-06-06     19      female       0          6      G2")

我想逐月展示不同组别G1-6和trt的趋势。例如,xbar上有1-12个月的图表,ybar上有按G分组的该月人数的计数(因此,在图表上为G1、G2等绘制不同颜色的趋势线,显示该月的组数是如何下降或上升的),或者甚至是另一种形式的描述性统计数据将会很有帮助。但我想不出如何让任何图形工作。我已经为年份制作了单独的专栏,并尝试为组制作专栏,但它就是不能绘制图表?以下是我所做的和尝试的:

代码语言:javascript
复制
df$Date <- as.Date(df$Date)
dfDates <- data.frame(year = as.numeric(format(df$Date, format = "%Y")), month = as.numeric(format(df$Date, format = "%m")))
dfDates <- cbind(df,dfDates)

dfG <- df %>%
  pivot_longer(cols = c("G1", "G2", "G3", "G4","G5","G6"), names_to = "Group", names_ptypes = list(Group = factor()), values_to = "Value") %>%
  filter(Value == 1) %>%
  select(-Value)

ggplot(dfG, aes(factor(month), sum(Group), group = Group, Trt)) +
  geom_line(size = 1, alpha = 0.8) +
  geom_point(size = 2) +
  scale_color_brewer(name = "Name", palette = "Set1")+xlab("month") + ylab("trend")

ggplot(dfG, aes(factor(month), Group)) +
  geom_line(size = 1, alpha = 0.8) +
  geom_point(size = 2) +
  scale_color_brewer(name = "name", palette = "Set1")+xlab("month") + ylab("trend")

我非常感谢你的时间和帮助,谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2021-11-08 19:41:18

最简单的方法是首先创建摘要,然后在管道中或首先在您的环境中定义一个新对象将其传递给ggplot()。(我更喜欢)

代码语言:javascript
复制
library(tidyverse)

df2 <- 
  df %>%
  mutate(month = factor(month.abb[month], levels = month.abb)) %>%
  group_by(month, Group) %>%
  summarise(count = max(row_number())) 
#> `summarise()` has grouped output by 'month'. You can override using the `.groups` argument.

ggplot(df2, aes(month, count)) +
  geom_line(aes(color = Group, group = Group), size = 1, alpha = 0.8) 

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

https://stackoverflow.com/questions/69887187

复制
相关文章

相似问题

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