【发布时间】:2017-08-11 23:10:56
【问题描述】:
我有下表
**A** | **B** | **C** |**D** | **E**|
:----: | :----: | :----:|:----:|:----:|
1/1/17 | 3/1/17 |4/1/17 | H |0.4 |
1/1/17 | 3/1/17 |4/1/17 | H |0.2 |
2/1/17 | 4/1/17 |5/1/17 | V |0.6 |
3/1/17 | 5/1/17 |6/1/17 | V |0.8 |
4/1/17 | 5/1/17 |7/1/17 | H |0.6 |
4/1/17 | 6/1/17 |7/1/17 | H |0.2 |
这个想法是在soptfire中使用Spotfire,如果不是,然后是R。不幸的是,没有基本代码,因为我不确定如何将唯一日期中的单行数据与 A、B 和 C 中的一整列日期进行比较,并且总和值形成另一列 E。确实有我可以从中提取唯一日期值的初始部分。不要认为它有用,但将其包含在此处。
library(reshape2)
mydata<-melt(dates,id=c("D"))
mydata$value<-ymd(mydata$value)
Looking for the result as in the table below using R code
1. Column with Unique list of dates from columns A,B & C above
2. Sum of Column E where Column A dates <= Unique Dates value for each
columns A,B&C from the above table.
3. Only Sum filtered by column D value of 'H' only
或 有没有办法在 Spotfire 中以唯一日期作为 X 轴并在 Y 轴上获得总和,而无需使用 Spotfire 中的 R 创建单独的表格,如下所示。
结果
**Unique Dates** | **Sum for A** | **Sum for B** | ** Sum for C**|
:----: | :----: | :----: | :----: |
1/1/17 | 0.6 | 0 | 0 |
2/1/17 | 0.6 | 0 | 0 |
3/1/17 | 0.6 | 0.6 | 0 |
4/1/17 | 1.4 | 0.6 | 0.6 |
5/1/17 | 1.4 | 1.2 | 0.6 |
6/1/17 | 1.4 | 1.4 | 0.6 |
7/1/17 | 1.4 | 1.4 | 1.4 |
示例: 对于 A 列中 2017 年 3 月 1 日的唯一日期,它是 0.4+0.2=0.6 即仅对应于 A 中 2017 年 1 月 1 日的值,因为 2017 年 2 月 1 日在 D 列中有“V”。同样,对于 2017 年 2 月 1 日,它仍然是 0.6,因为正在添加 H 的唯一值。
【问题讨论】:
-
我知道这是一个 R 问题,所以你的
spotfire标签可能是不必要的。您使用的是基础 R、dplyr、data.table还是其他?我同意 Rich Scriven 的评论,请提供您的代码,否则看起来您很懒惰并要求我们为您完成所有工作。 -
@r2evans - 这个想法是在 soptfire 中使用 Spotfire,如果不是,则使用 R。我正在使用基本 R。不幸的是,没有基本代码,因为我不确定如何将唯一日期中的单行数据与 A、B 和 C 中的一整列日期和总和值形式进行比较另一列 E。确实有初始部分,我可以从中提取唯一的 Date 值。不要认为它有用,但将其包含在此处。 library(reshape2) mydata
-
好的,很公平。就像在your previous question 中一样,提供可消耗的样本数据将是有益的。 (那里的答案为您完成了这项工作,尽管它确实应该在原始问题中完成。如果您简化它,您更有可能获得反馈和答案。)
-
@r2evans 我同意,将继续并将其添加到我的问题中。谢谢。
-
您是如何获得 Sum for A 的结果的?具体来说,2017 年 5 月 1 日到 17 年 7 月 ...你能解释一下吗?