**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 |
想法是使用Spotfire,如果不是那么R在soptfire中。不幸的是,我没有基本代码,因为我不确定如何将唯一日期中的单行数据与A,B和B中的整个日期列进行比较。 C和sum值构成另一列E.请从我可以从中提取唯一Date值的初始部分。不要认为它有用,但包含在这里。
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
OR 有没有办法在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列中3/1/2017的独特日期,它是0.4 + 0.2 = 0.6 这是与A的1/1相对应的值,仅在2/1/2017有&#34; V&#34;在D列中同样地,对于2/1/2017它仍然是0.6,因为H的唯一值被添加。
答案 0 :(得分:0)
假设最后的Note中的数据试试这个。没有包使用。
nms <- names(DF)[1:3]
fo <- E ~ A + time
DFH <- subset(DF, D == "H")
r <- reshape(DFH, varying = list(nms), times = nms, dir = "long")
xtabs(fo, aggregate(fo, r, sum))
给出以下内容 - 请注意,问题中的输出似乎与问题中的输入不对应,因此以下内容必然不同:
A A B C
1/1/17 0.6 0.0 0.0
2/1/17 0.0 0.0 0.0
3/1/17 0.0 0.6 0.0
4/1/17 0.8 0.0 0.6
5/1/17 0.0 0.6 0.0
6/1/17 0.0 0.2 0.0
7/1/17 0.0 0.0 0.8
这也可以表示为magrittr管道,其中nms
和fo
如上所述:
library(magrittr)
DF %>%
subset(D == "H") %>%
reshape(varying = list(nms), times = nms, dir = "long") %>%
{ aggregate(fo, ., sum) } %>%
xtabs(formula = fo)
注意:输入数据:
Lines <- "
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 "
DF <- read.table(text = Lines, header = TRUE, check.names = FALSE,
comment.char = ":", sep = "|", strip.white = TRUE)