我的数据集中有一列,其中时间段(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 Value
1 1 1 0.5687805
2 1 2 -0.7207750
3 1 4 1.2425819
4 1 5 0.6821231
Run Code Online (Sandbox Code Playgroud)
如您所见,时间3缺失.通常一个或多个可能会丢失.我可以自己解决这个问题,但恐怕我不会以最有效的方式做到这一点.我的方法是创建一个函数:
生成时间段从序min(Time)到max(Time)
然后做一个setdiff抓取缺失的Time值.
将该向量转换为a data.frame
拉出唯一标识符变量(Id以及上面未列出的其他变量),并将其添加到此data.frame中.
合并两者.
从功能返回.
因此整个过程将按如下方式执行:
# Split the data into individual data.frames by …Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题,我无法弄清楚.我有一个包含两个因子(distance)和年(years)的数据帧.我想years用0 来完成每个因子的所有值.
即从这个:
distance years area
1 NPR 3 10
2 NPR 4 20
3 NPR 7 30
4 100 1 40
5 100 5 50
6 100 6 60
Run Code Online (Sandbox Code Playgroud)
得到这个:
distance years area
1 NPR 1 0
2 NPR 2 0
3 NPR 3 10
4 NPR 4 20
5 NPR 5 0
6 NPR 6 0
7 NPR 7 30
8 100 1 40
9 100 2 0
10 100 3 0 …Run Code Online (Sandbox Code Playgroud)