R - 从最旧的数据中减去最新数据

时间:2018-06-14 03:37:48

标签: r database

因此,我正在使用的当前数据帧具有以下格式:

void print_document(xml_document<> &document)
{
    rapidxml::print(std::cout, document, 0);
}

ID是唯一ID。我希望能够从每个ID的最早日期的D1中删除最近日期的D1。

然后,我希望将结果除以最旧和最新日期之间的#Years。这可能吗?

更新:

大家好。我输入了这段代码:

ID Date       D1
1  2011-07-03 5
1  2012-04-05 6
1  2015-02-06 7
2  2010-08-21 4
2  2011-06-06 2
3  2016-05-20 5
3  2010-03-10 10

但是返回的数据是:

z <- y %>%      
 arrange(y$ID, y$Date) %>%
 group_by(y$ID) %>% 
 summarise(Diff = first(y$D1) - last(y$D1),
        nyears = year(last(y$Date)) - year(first(y$Date)))

这些数字似乎非常不准确,结果正在重演。我该如何解决这个问题?理想的情况下。我希望我的输出只是根据给定唯一ID的D1中的差异来计算差异:

ID  Diff nyears
 0  1.12     27
 1  1.12     27
 2  1.12     27
 3  1.12     27
 4  1.12     27
 5  1.12     27
 6  1.12     27
 8  1.12     27
 9  1.12     27
13  1.12     27

等。

1 个答案:

答案 0 :(得分:1)

我们按&#39; ID&#39;,arrange按&#39;日期&#39;分组,然后得到lastfirst&#的差异39; D1&#39;,并且还在相应的&#39;日期&#39;之间进行year的差异。元素。 (假设&#39;日期&#39;是Date

library(dplyr)
library(lubridate)
df1 %>%      
  arrange(ID, Date) %>%
  group_by(ID) %>% 
  summarise(Diff = first(D1) - last(D1),
            nyears = year(last(Date)) - year(first(Date)))