【发布时间】:2016-10-24 09:23:49
【问题描述】:
来自一个非常简单的数据框,例如
time1 <- as.Date("2010/10/10")
time2 <- as.Date("2010/10/11")
time3 <- as.Date("2010/10/12")
test <- data.frame(Sample=c("A","B", "C"), Date=c(time1, time2, time3))
如何获得样本 A、B、C 之间具有成对时间距离(样本之间经过的天数)的矩阵?
A B C
A 0 1 2
B 1 0 1
C 2 1 0
/edit:更改了日期的格式。不便之处敬请见谅
【问题讨论】:
-
@ZheyuanLi 写一个答案,然后你也可以正确格式化你的代码。
-
一般来说,R中这类问题的解决方案是
dist函数。在您的情况下,dist(test$Date)或多或少“有效”;但是,dist不知道时间,因此结果只是数字,而不是timediff对象,这可能是个问题。因此,哲元的上述评论给出了更好的答案。