你可以這樣做:
library(dplyr)
diff<- df %>% mutate(diff = difftime(as.Date(date1,format = "%m/%d/%Y"),
as.Date(date2,format = "%m/%d/%Y")),
new_col = as.integer(diff + 1))
注:
difftime
取兩個日期之間的時間差,並返回difftime
對象
- 假設您想在結果
diff
中添加一天,您可以添加一個並將整個事件轉換爲整數。
- 關於
difftime
的好處是您可以擁有不同的時間單位。所以diff
實際上是「周」或「月」
mutate
讓你使用你剛纔一樣mutate
調用中創建的變量,因此無需第二mutate
爲new_col=
例子:
> difftime(as.Date("2017-05-30"),as.Date("2017-05-28"))
Time difference of 2 days
> difftime(as.Date("2018-05-30"),as.Date("2017-05-28"), units = "weeks")
Time difference of 52.42857 weeks
> difftime(as.Date("2018-05-30"),as.Date("2017-05-28"), units = "weeks") %>% as.integer
[1] 52
你想要在同一列嗎?如果是這樣,請與您現有的mutate語句內聯。如果添加列,只需添加一個隨後的'mutate(new_col = diff + days(1))'......假設您使用'lubridate'並且您正在尋求增加一天。 –
你意識到'+ 1'的作品,對吧? 'date1 < - 「07/31/1982」; date2 < - 「08/01/1982」; as.Date(date1,format =「%m /%d /%Y」) - as.Date(date2,format =「%m /%d /%Y」)+ 1'。要添加+1,只需輸入「+ 1」。 –
我做了這個評論,讓OP考慮他們打算增加的內容,因爲它在問題中不清楚。詳細是不是一個錯誤。 –