【发布时间】:2016-11-23 18:01:02
【问题描述】:
我正在尝试为实际列做一个rowSum。但是,对于某些观察,我想包括截至UpTo 日期的值。这是数据框:
dat <- structure(list(Company = c("ABC", "DEF", "XYZ"), UpTo = c(NA,
"Q2", "Q3"), Actual.Q1 = c(100L, 80L, 100L), Actual.Q2 = c(50L,
75L, 50L), Forecast.Q3 = c(80L, 50L, 80L), Forecast.Q4 = c(90L,
80L, 100L)), .Names = c("Company", "UpTo", "Actual.Q1", "Actual.Q2",
"Forecast.Q3", "Forecast.Q4"), class = "data.frame", row.names = c("1",
"2", "3"))
Company UpTo Actual.Q1 Actual.Q2 Forecast.Q3 Forecast.Q4
1 ABC NA 100 50 80 90
2 DEF Q2 80 75 50 80
3 XYZ Q3 100 50 80 100
- 对于公司
ABC,由于没有UpTo日期,它只是Actual.Q1+Actual.Q2,即150。 - 对于公司
DEF,由于UpTo的日期是Q2,所以它将是Actual.Q1+Actual.Q2,即155。 - 对于公司
XYZ,由于UpTo的日期是Q3,所以它将是Actual.Q1+Actual.Q2+Forecast.Q3,即230。
生成的数据框如下所示:
Company UpTo Actual.Q1 Actual.Q2 Forecast.Q3 Forecast.Q4 SumRecent
1 ABC NA 100 50 80 90 150
2 DEF Q2 80 75 50 80 155
3 XYZ Q3 100 50 80 100 230
我尝试使用rowSums 函数。但是,它不会使变量UpTo 生效。任何帮助表示赞赏。谢谢!
【问题讨论】:
-
如果是 NA,则只有 Q1 + Q2,因为如果没有指定最新的,我们只需要实际值。