我的数据集如下所示
structure(list(id = c(1, 2, 2, 2), enrollment = c(2014, 2011,
2012, 2013), deregister = c(2016, 9999, 9999, 9999)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -4L))
我需要将该数据集转换为以下数据集:
structure(list(id = c(1, 1, 1, 2, 2, 2), enrollment = c(2014,
2015, 2016, 2011, 2012, 2013), deregister = c(9999, 9999, 2016,
9999, 9999, 9999)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-6L))
其理念是:如果取消注册不是9999,则通过向注册加1来向数据集添加新行,直到注册=取消注册。使用9999对新添加行的取消注册进行编码,直到注册=取消注册。
因为我有很多观察结果,所以我想创建一个没有循环的数据集。
谢谢。
2条答案
按热度按时间0x6upsns1#
可以使用
mapply
+:
创建序列:brccelvz2#
这里是一个替代方法。请检查一下这个方法是否适用于您的原始数据集: