R 基于现有列的新列

R 基于现有列的新列,r,R,我有一个包含日期的列,试图创建一个新的列,显示数字,指示日期在没有任何间隔的情况下持续了多少天 如图所示,日期范围为2015-01-04至2015-01-21,因此,对于2015-01-04,新列将显示1,然后对于2015-01-05,将显示2,对于2015-01-08,将显示5,然而,在这之后有一个1天的间隔,即没有2015-01-10,下一个日期是2015-01-11,因此新栏将再次显示1,2015-01-12将显示2,这将持续到15,因为我们在日期上没有间隔,2015-01-15将显示5

我有一个包含日期的列,试图创建一个新的列,显示数字,指示日期在没有任何间隔的情况下持续了多少天


如图所示,日期范围为2015-01-04至2015-01-21,因此,对于2015-01-04,新列将显示1,然后对于2015-01-05,将显示2,对于2015-01-08,将显示5,然而,在这之后有一个1天的间隔,即没有2015-01-10,下一个日期是2015-01-11,因此新栏将再次显示1,2015-01-12将显示2,这将持续到15,因为我们在日期上没有间隔,2015-01-15将显示5,这将再次中断,因为从2015-01-18开始,16和17将没有日期列将再次包含1

如果您在问题中有日期列的名称,这将非常有用。由于不太了解您的数据,以下是一个解决方案:

# use dplyr -- might have to install it
library(dplyr)

yourdataname %>% 
mutate(FromPreviousDate=as.numeric(difftime(nameofDateCol,lag(nameofDateCol,1))))
其中,
yourdataname
是数据框的名称,
nameofDateCol
是添加图片的列名

您可能需要安装
dplyr
来执行此操作:

install.packages("dplyr")

那应该对你有用

抱歉没有提供名称该栏的名称为“生效日期”,但它不是说1、2、3,而是一直说1,直到日期出现间隔,并且在每个间隔处都说3。非常感谢您的帮助