如何在使用diff函数后制表数据?

时间:2015-07-29 15:45:10

标签: r dplyr

对于以下数据框:

library(dplyr)
df2 <- data_frame(
  Account_Name = c("Walmart","Walmart", "Walmart","Walmart", "Walmart"),
  Close_Date = c("2013-09-20", "2014-03-31", "2014-06-02", "2014-08-29", "2014-12-31"))

我使用diff函数计算了客户帐户交易结束日期的时间差:

df2$Close_Date <- as.Date(df2$Close_Date, "%Y-%m-%d")

time_difference <- diff(df2$Close_Date)

我得到的一组价值如下:

> time_difference
Time differences in days
[1] 192  63  88 124

我想知道的是,如何使用脚本将time_difference值集合放入我的df2数据框。对此的挑战是,我的time_difference值中的少了一个数据点,而不是df2中的值。我希望看到它的最终结果

df2 <- data_frame(
  Account_Name = c("Walmart","Walmart", "Walmart","Walmart", "Walmart"),
  Close_Date = c("2013-09-20", "2014-03-31", "2014-06-02", "2014-08-29", "2014-12-31"),
  Time_Difference = c("NA", "192", "63", "88", "124"))

使用NA填充Time_Difference列中的第一项,以便修复/填充少一个数据点问题。

1 个答案:

答案 0 :(得分:7)

完全按照自己的意愿行事,并将NA放在前面。

df$Time_Difference <- c(NA, diff(df$Close_Date))

这基本上是你想要使diff()与所讨论的矢量长度相同时所做的事情。