【发布时间】:2018-11-09 22:27:54
【问题描述】:
我对 R 非常陌生,我希望使用 GGPLOT2 为我拥有的一组数据创建一个折线图。数据由日期、评论、数量组成 - 有多个日期/评论/数量组合,但我需要做的是将数据放到每个日期和评论组合对数量都有一个值的地方 - 基本上是对它们求和。我知道如何在 SQL 中做到这一点,并且正在使用 sqldf 包来尝试实现相同的目标,但我得到了一行返回。
样本数据:
Date Comments BuysToForecast
<fct> <fct> <int>
1 4/6/2018 Approved 573
2 4/6/2018 "" 363
3 4/6/2018 "" 503
4 4/6/2018 "" 324
5 4/6/2018 Cancelled 1844
6 4/6/2018 Consumed By SO's 422
7 4/6/2018 Consumed By SO's 790
8 4/6/2018 Reduced 515
9 4/6/2018 Reduced 790
10 4/6/2018 Approved 1378
例如,我需要的是 = 只有一个 4/5/2018/Consumed By SO's/Qty 值具有所有数量。当我在 sqldf 中使用下面的 SQL 时,我得到了显示的结果:
SQLDF:
dp1 <- sqldf("select Date,
Comments,
SUM(BuysToForecast) AS 'SUM' from dp")
head(dp1)(example data):
Date Comments SUM
1 5/30/2018 Approved 2062046
对任何格式问题提前道歉 - 对 R 来说非常新
【问题讨论】:
-
类似这样的东西:
library(tidyverse); library(lubridate); dp1 %>% group_by(Date=mdy(Date), Comments) %>% summarise(BuysToForecast=sum(BuysToForecast)) %>% ggplot(aes(Date, BuysToForecast, colour=Comments)) + geom_line(). -
谢谢你!这让我得到了我想要的总体画面——代表不同的独特线条。您能否扩展 Date = mdy(Date) 部分,这意味着什么?这张图片也很棒,但它确实改变了轴 - y 现在包含错误值 (4e+05),x 不是数据的日期,而是涵盖这些日期的范围。感谢对新手的帮助,我会继续改进。
-
如果您提供一个可重现的示例(即重现您的问题的数据示例和代码)将会很有帮助。使用
dput提供数据样本——例如,将dput(dp1[1:20, ])的输出粘贴到您的问题中。并提供您正在运行的所有相关代码。