【发布时间】:2012-01-31 16:51:44
【问题描述】:
这不是一个真正的统计问题,而是执行实际统计分析之前的数据准备问题。我有一个由稀疏数据组成的数据框。我想逐组“扩展”这些数据以包括缺失值的零。
这是数据示例(a 和 b 是定义组的两个因素,t 是稀疏时间戳,x 是值):
test <- data.frame(
a=c(1,1,1,1,1,1,1,1,1,1,1),
b=c(1,1,1,1,1,2,2,2,2,2,2),
t=c(0,2,3,4,7,3,4,6,7,8,9),
x=c(1,2,1,2,2,1,1,2,1,1,3))
假设我想扩展 t=0 和 t=9 之间的值,这是我希望的结果:
test.expanded <- data.frame(
a=c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
b=c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2),
t=c(0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9),
x=c(1,0,2,1,2,0,0,2,0,0,0,0,0,1,1,0,2,1,1,3))
已为t 的所有缺失值插入零。这使它更易于使用。
我有一个快速而肮脏的实现,它对数据框进行排序并循环遍历它的每一行,一次添加缺失的行。但我对解决方案并不完全满意。有没有更好的方法?
对于熟悉 SAS 的人来说,它类似于proc expand。
谢谢!
【问题讨论】:
标签: r time-series