R编程:循环后保存三维输出
Posted
技术标签:
【中文标题】R编程:循环后保存三维输出【英文标题】:R programming: save three dimensional outputs after loop 【发布时间】:2015-05-15 14:21:01 【问题描述】:我是 R 新手,我想在循环之后保存输出
for (i in 1:5)
for (d in 1:10)
fonction1
fonction2
fonction3
最后我想要 1 个列表-> 包含 5 个列表-> 包含 1*10 数据框 -> 包含一定数量*3 的数字数据。 (我不知道我说的是否正确,我想要的是:就像在 Matlab 中一样,有一个 1*5 结构 -> 包含五个 1*10 结构 -> 包含某些数字*3 数字数据)。
提前感谢
【问题讨论】:
我认为您需要创建一个列表。即lst <- vector('list', 5)
然后将输出分配给lst[[i]]
没有可复现的例子,不好帮忙
【参考方案1】:
看起来您正在处理以下内容:
out <- list()
for (i in 1:5)
outList <- list()
for (d in 1:10)
outVect <- c()
outVect[1] <- fonction1()
outVect[2] <- fonction2()
outVect[3] <- fonction3()
outList[[d]] <- outVect
out[[i]] <- outList
那你可以看看:
str(out)
查看答案的结构
【讨论】:
太棒了。请记住通过单击答案左侧的勾号将问题的答案标记为您选择的答案,以便人们看到您的问题已解决。如果您喜欢某个答案,您可以随时点击向上箭头来表示感谢。【参考方案2】:试试这个:
lst <- lapply(1:5, function(i)
lapply(1:10, function(d)
data.frame(function1(),
function2(),
function3())
)
)
假设function1
、function2
和function3
都返回相等长度的向量,上面的代码应该会产生你想要的对象。您可以像在 for
循环代码中使用它们一样使用 i
和 d
。
【讨论】:
以上是关于R编程:循环后保存三维输出的主要内容,如果未能解决你的问题,请参考以下文章