代码之家  ›  专栏  ›  技术社区  ›  Sajal Roychowdhury

在melt数据框中设置变量列

  •  0
  • Sajal Roychowdhury  · 技术社区  · 7 年前
    Data :
    
    Cat <- c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4)
    
    variable <- c("IL_1_Flag_p", "IL_1_Flag_p", "IL_1_Flag_p", "IL_1_Flag_p", "IL_2_Flag_p", "IL_2_Flag_p", "IL_2_Flag_p","IL_2_Flag_p", "IL_3_Flag_p", "IL_3_Flag_p", "IL_3_Flag_p", "IL_3_Flag_p", "IL_4_Flag_p", "IL_4_Flag_p", "IL_4_Flag_p", "IL_4_Flag_p", "IL_5_Flag_p", "IL_5_Flag_p", "IL_5_Flag_p", "IL_5_Flag_p")
    
    value <- c(21,17,16,210,20,17,15,189,20,17,15,188,19,17,15,188,20,17,15,194)
    
    agg_melt_p <- data.frame(cat, variable, value)
    

    我只想为变量列中的“IL5\u Flag\u p”绘制折线图。已尝试使用 subset 从…起 plyr 包,但它不工作并显示错误。我正在组合两个图(条形图和折线图)。原始数据使用来自 melt 在里面 reshape2

    对于ggplot,我使用的是这篇文章:

    ggplot() + geom_line(data = agg_melt_p, aes(x=Category , y=value , colour=variable))
    

    请帮忙

    1 回复  |  直到 7 年前
        1
  •  1
  •   tifu    7 年前

    一个解决方案使用 dplyr :

    agg_melt_p %>% filter(variable == "IL_5_Flag_p") %>%
    ggplot() + 
    geom_line(aes(x=Cat, y=value, colour = variable))
    

    这将以您想要的方式对数据帧进行子集化,而不改变对象本身,然后将其传递给ggplot命令。这个 colour=variable 代码中的位不是必需的,但如果要自动生成图例,则可以保留该位。

    enter image description here