【发布时间】:2017-11-28 08:56:54
【问题描述】:
我想在 R 中创建一个保留,数据如下:
ID 是个人,参与了 t 年。
如果个人访问了 Albert Heijn,Albert.Heijn 为 1。
Albert.Heijnv1-7 是衡量客户满意度的指标。
如果Albert.Heijn是NA,则该人当年没有去过公司,因此满意度测量值是NA
现在我需要创建一个保留变量,可能使用for loop。因为ID 14401 = 2012 年的留存率,因为 2013 年的Albert.Heijn = 1。但是,同一个人在 2013 年没有留存,因为缺少 2014 年。
再次在 2015 年,留存率为 1,因为 2016 年的 Albert.Heijn = 1。2016 年的留存率为 0,因为没有 2017 年的数据。
最后,应删除 2016 年和 2013 年,因为如果没有连续一年的观察,则无法衡量留存率。
这需要为 180 多家不同的公司完成。
有人可以帮帮我吗?提前致谢。
【问题讨论】:
-
请使用
dput而不是图像和预期输出来展示您的示例 -
如果您的数据非常大,请使用:dput(head(YourData))
-
@MelvinBredewold 您可以创建一个包含重要变量的示例数据框。
-
这是一小部分数据使用dput的例子,其中1=访问过的公司X,0=未访问过> dput(head(Book2)) structure(list(ID = c(13302) , 13302, 14401, 14401, 14401, 14401), Jaar = c(2012, 2015, 2012, 2013, 2015, 2016),
Albert Heijn= c(1, 0, 1, 1, 1, 1), Aldi = c(1, 1, 0, 0, 0, 0),Bas van der Heijden= c(0, 0, 0, 0, 0, 0), Boni = c(0, 0, 0, 0, 0, 0) , C1000 = c(1, 0, 1, 1, 0, 0), Coop = c(0, 1, 0, 0, 0, 0), Deen = c(0, 0, 0, 0, 0, 0 ), DekaMarkt = c(0, 0, 0, 0, 0, 0), Digros = c(0, 0, 0, 0, 0, 0),