为缺少时间步骤添加行的最快方法?我的数据集中有一列,其中时间段(Time)是从ab开始的整数。有时,任何特定组都可能缺少时间段。我想用这些行填写NA。以下是1(几千个)组的示例数据。structure(list(Id = c(1, 1, 1, 1), Time = c(1, 2, 4, 5), Value = c(0.568780482159894, -0.7207749516298, 1.24258192959273, 0.682123081696789)), .Names = c("Id", "Time", "Value"), row.names = c(NA, 4L), class = "data.frame") Id Time Value1 1 1 0.56878052 1 2 -0.72077503 1 4 1.24258194 1 5 0.6821231如您所见,时间3缺失。通常一个或多个可能会丢失。我可以自己解决这个问题,但恐怕我不会以最有效的方式做到这一点。我的方法是创建一个函数:生成时间段从序min(Time)到max(Time)然后做一个setdiff抓取缺失的Time值。将该向量转换为a data.frame拉出唯一标识符变量(Id以及上面未列出的其他变量),并将其添加到此data.frame中。合并两者。从功能返回。因此整个过程将按如下方式执行: # Split the data into individual data.frames by Id. temp_list <- dlply(original_data, .(Id)) # pad each data.frame tlist2 <- llply(temp_list, my_pad_function) # collapse the list back to a data.frame filled_in_data <- ldply(tlist2)更好的方法来实现这一目标
3 回答
- 3 回答
- 0 关注
- 533 浏览
添加回答
举报
0/150
提交
取消