使用 R 中的函数查找 2 天之间的天数并压缩向量
Finding the days between 2 days using functions in R and condensing the vector
所以我需要创建一个函数,该函数接受多个日期 n,并创建一个具有日期范围 n-1 以及这些日期范围之间天数不同的新向量。
c("Jan. 20, 2009", "July 20, 1969", "June 28, 1914", "July 14, 1789", "Oct.
14, 1066"))
Time differences in days
10/14/1066-7/14/1789 7/14/1789-6/28/1914 6/28/1914-7/20/1969
263979 45638 20111
7/20/1969-1/20/2009
14429
这就是我目前所拥有的。我正在努力寻找一种迭代和创建更短向量的方法。我已经重新格式化了日期,但我不知道如何连接范围内的日期并获取这些日期范围内的天数。我在下面的代码中尝试 class(d) 但它不起作用。
days_between = function(v) {
sort(mdy(v))
d = ymd("1066-10-14") - ymd("1789-07-14")
class(d)
}
希望这足够具体并且有意义。谢谢
x = c("Jan. 20, 2009", "July 20, 1969", "June 28, 1914", "July 14, 1789", "Oct.
14, 1066")
d = lubridate::mdy(x)
d = d[order(d)]
result = diff(d)
labels = format(d, "%m/%d/%Y")
names(result) = paste(head(labels, -1), labels[-1], sep = "-")
result
Time differences in days
# 10/14/1066-07/14/1789 07/14/1789-06/28/1914 06/28/1914-07/20/1969 07/20/1969-01/20/2009
# 263979 45638 20111 14429
所以我需要创建一个函数,该函数接受多个日期 n,并创建一个具有日期范围 n-1 以及这些日期范围之间天数不同的新向量。
c("Jan. 20, 2009", "July 20, 1969", "June 28, 1914", "July 14, 1789", "Oct.
14, 1066"))
Time differences in days
10/14/1066-7/14/1789 7/14/1789-6/28/1914 6/28/1914-7/20/1969
263979 45638 20111
7/20/1969-1/20/2009
14429
这就是我目前所拥有的。我正在努力寻找一种迭代和创建更短向量的方法。我已经重新格式化了日期,但我不知道如何连接范围内的日期并获取这些日期范围内的天数。我在下面的代码中尝试 class(d) 但它不起作用。
days_between = function(v) {
sort(mdy(v))
d = ymd("1066-10-14") - ymd("1789-07-14")
class(d)
}
希望这足够具体并且有意义。谢谢
x = c("Jan. 20, 2009", "July 20, 1969", "June 28, 1914", "July 14, 1789", "Oct.
14, 1066")
d = lubridate::mdy(x)
d = d[order(d)]
result = diff(d)
labels = format(d, "%m/%d/%Y")
names(result) = paste(head(labels, -1), labels[-1], sep = "-")
result
Time differences in days
# 10/14/1066-07/14/1789 07/14/1789-06/28/1914 06/28/1914-07/20/1969 07/20/1969-01/20/2009
# 263979 45638 20111 14429