【发布时间】:2019-12-18 21:49:47
【问题描述】:
我有一个数据框,其中包含一个名称变量,其中有不同的重复字符串,然后是一些数字变量和一个日期变量。首先,我试图找出是否可以为所有具有相同值的字符串创建一个新列,从每隔一个日期减去最低日期,因此有一个数值(天)。如果可能的话,我想将选择的数字变量之一与新的日变量相关联,但再次聚合在相同的字符串值或“人”上。关于这一点,我不介意在字符串的每一行中列出相关结果,因为无论如何我稍后都会聚合字符串。我知道这可能听起来很令人困惑,我希望我设置的小示例已经包含“正确”值,这将有助于理解我的问题。
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)
【问题讨论】:
-
你是对的,我错了。
-
num1correlates 会将 num1 上的一个人的值与同一个人在 dayssignedin 上的值相关联。它只是重复,因为我想不出任何其他方式来存储该信息。
-
非常感谢。所以想象一下这些价值是跳跃的高度。时间流逝等于训练。然后分别为每个人计算 num1correlates,例如 Mortimer 通过采用 cor(c(0.8, 0.9, 0.2), c(399, 369, 0)) 来评估训练和跳跃高度之间的联系。我将值增加三倍可能会让人感到困惑,因为实际上只有一个相关性,但我认为这是一种存储数据的便捷方式。
-
它来自于“2014-04-17”-“2013-04-13”,这是我遇到问题的关键。这也是我不能简单地取最大值和最小值的原因。
-
所以基本上我总是想从一个人的每个日期中减去最小值。
标签: r dataframe dplyr time-series