我有一个数据框,其中包含一个名称变量,其中有不同的重复字符串,然后是一些数字变量和一个日期变量。首先,我试图找出是否可以创建一个新列,该列针对具有相同值的所有字符串,从其他每个日期中减去最短的日期,因此具有数值(天)。如果可能的话,我想将选择的数字变量之一与新的日变量相关联,但还是要在相同的字符串值或“人”上进行汇总。关于这一点,我不介意在字符串的每一行中列出相关的结果,因为无论如何以后我都会在字符串上进行聚合。我知道这听起来确实很令人困惑,并且希望我设置的小示例已经包含“正确”的值,将有助于理解我的问题。
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)
答案 0 :(得分:1)
使用dplyr
的一种方法是将date
转换为Date对象,为每个date
减去min
的最大日期,然后计算{ {1}}和names
。
num1