【发布时间】:2018-07-31 12:15:24
【问题描述】:
我有一个数据框,其中第一列是日期,第一行是公司。 df是这样的:
date A B C D
1/2/1998 0.0 0.0 0.0 0.0
1/5/1998 0.2 3.2 9.4 3.8
1/6/1998 2.1 2.5 1.7 0.9
1/7/1998 2.0 0.0 1.7 0.1
1/8/1998 12.7 3.7 5.3 1.1
1/9/1998 1.2 0.0 3.1 2.3
1/12/1998 2.1 0.0 0.0 1.4
当我找出每个月的最大值时,我使用以下代码:
df1 <- aggregate(df[,-1],
by=list(Month=format(df$date,"%y-%m")),
FUN=max)
现在我想创建另一个数据框,我将在其中找到最大日期到该月月底之间的天数。例如,如果最大值出现在 4 月 20 日,则新变量将为 10。我想要的输出可能如下所示:
Month A B C D
1998-1 20 12 26 14
1998-2 10 14 4 3
1998-3 15 18 9 12
1998-4 12 20 27 12
1998-5 22 24 5 23
【问题讨论】:
-
我不明白你的例子。如果输入是 2 月 20 日,为什么输出是 10?
-
输入不是 2 月 20 日。它是最大返回值到来的日期。下个月可能会有所不同
-
您说“例如,如果最大值出现在 2 月 20 日,那么新变量将是 10”。我不明白为什么在这种情况下新变量是 10。 2 月有 28 或 29 天,具体取决于年份,所以结果似乎应该是 8 或 9,而不是 10。这只是一个错误,还是我仍然误解?
-
您的示例数据框很有帮助,但如果您为该输入显示所需的输出会更有帮助。
-
我已经给出了示例输出。 @Gregor