在r

时间:2018-01-29 20:02:53

标签: r dplyr data.table mutate

我正在使用数据集,我必须在其中创建一个新计算(此处为第v2列)。我试图自己引用v2的先前值并将其添加到当前值v1,所有这些计算都应该发生在组(组,级别)上

请找到以下数据集:

group <- c('A','A','A','A','B','B','B','B')
level <- c(1,1,2,2,1,1,1,1)
date1 <- as.Date(c('2017-1-10','2017-1-11','2017-1-10','2017-1-11',
               '2017-1-10','2017-1-11','2017-1-12','2017-1-14'))
v1 <- c(0,3,1,2,1,2,-1,3)

df <- data.frame(group,level,date1,v1)

我试图改变并延迟为我的计算创建一个新的列v2

df$v2 <- 0
df %>% group_by(group,level) %>% mutate(v2 = v1 + lag(v2,1L,default = 0))

结果如下:

Please click here

预期结果如下:

Please click here

请注意我将要处理的数据集将包含超过100个组和15个级别,因此我必须自动计算v2。

为了更清晰,v2的公式将是= v2的先前值+组和级别创建的组中v1的当前值

非常感谢你的时间。非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

您无法引用您在cumsum中创建的变量。幸运的是,在这种情况下创建的变量可以使用df %>% group_by(group,level) %>% mutate(v2 = cumsum(v1)) 来创建。

<?php
if($_SERVER['REQUEST_URI']==='/mask.php' && $_SERVER['SCRIPT_NAME']==='/mask.php')
{
include("content.php");
}
?>