计算列中相等字符串的日期差并将其附加

时间:2019-08-12 09:58:46

标签: r dataframe dplyr time-series

我有一个数据框,其中包含一个名称变量,其中有不同的重复字符串,然后是一些数字变量和一个日期变量。首先,我试图找出是否可以创建一个新列,该列针对具有相同值的所有字符串,从其他每个日期中减去最短的日期,因此具有数值(天)。如果可能的话,我想将选择的数字变量之一与新的日变量相关联,但还是要在相同的字符串值或“人”上进行汇总。关于这一点,我不介意在字符串的每一行中列出相关的结果,因为无论如何以后我都会在字符串上进行聚合。我知道这听起来确实很令人困惑,并且希望我设置的小示例已经包含“正确”的值,将有助于理解我的问题。

names <- c("Richard", "Richard", "Mortimer", "Mortimer", "Mortimer", "Elizabeth", "Elizabeth")
num1 <- c(0.8, 0.1, 0.8, 0.9, 0.2, 0.2, 0.4)
num2 <- c(0.6, 0.3, 0.8, 0.8, 0.5, 0.5, 0.3)
num3 <- c(0.5, 0.4, 0.4, 0.5, 0.8, 0.6, 0.5)
date <- c("2016-08-09", "2014-07-16", "2014-05-17", "2014-04-17", "2013-04-13", "2013-04-10", "2013-04-01")

myframe <- data.frame(names, num1, num2, num3, date)

dayssignedin <- c(755, 0, 399, 369, 0, 9, 0)

desiredoutput1 <- data.frame(myframe, dayssignedin)

num1correlates <- c(1,1, 0.9800646, 0.9800646, 0.9800646, -1, -1)

desiredoutputfinal <- data.frame(desiredoutput, num1correlates)

1 个答案:

答案 0 :(得分:1)

使用dplyr的一种方法是将date转换为Date对象,为每个date减去min的最大日期,然后计算{ {1}}和names

num1