我想知道如何将完整循环输出的值存储到 R 中的单个数据帧中。例如,
for(i in unique(x$id)){
.
.
.
y=output of one iteration}
Run Code Online (Sandbox Code Playgroud)
在每次迭代结束时,我都会在 y 中获得输出。但我想将所有迭代的输出存储到 y 中。我如何在 R 中做到这一点?
小智 15
你可以简单地做到这一点
y <- NULL;
for (i in unique(x$id))
{
tmp <- [output of one iteration]
y <- rbind(y, tmp)
}
Run Code Online (Sandbox Code Playgroud)
您可以以 y 作为空开始data.frame,如:y <- data.frame()。然后在每次迭代结束时将行绑定到此 data.frame,如下所示y <- rbind.data.frame(y, [output of one interation]):lapply但您也可以通过将其包裹在and中来使其更紧凑,do.call如下所示:
y <- do.call(rbind.data.frame,
lapply(unique(x$id),
function(i){
...;
return([output of one iteration])}))
Run Code Online (Sandbox Code Playgroud)