我有一个长格式的数据结构,这意味着每个人都有多个观察结果(每个观测值都有一行)。现在每个个体都有不同数量的观测值。我希望以这样的方式来组织我的数据,即每个个体都将有相同数量的观测值。因此,找到具有最多观察值的个体并使用LOCF添加行(取决于缺失行的数量)将是很棒的。
例如:
# simulate data structure
d <- data.frame(
id = c(1,1,1,2,2,3,3,3,3,3),
value = c(10,11,12,5,9,55,14,12,20,7) )
现在,个体3具有最多的观测值(计数= 5)。我想为个体1添加两行(值为12),为个体2添加三行(值为9)
有什么想法吗?
祝您愉快,谢谢您。
2条答案
按热度按时间1aaf6o9v1#
如果您希望结转每个人的最后一个值,您可以
omqzjyyz2#
这里有一个tidyverse的解决方案,如果我们用
seq_along
创建一个变量来保存ID内的计数,那么我们可以用complete
和fill
来扩展表并填充缺失的值。