因此,我正在使用的当前数据帧具有以下格式:
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
等。
答案 0 :(得分:1)
我们按&#39; ID&#39;,arrange
按&#39;日期&#39;分组,然后得到last
和first
&#的差异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)))