我正在尝试绘制图并优化方法的参数。
这里我加载了一个我使用的包和一个相关的数据
然后我创建一个20行但未知列的空矩阵,因为我知道我的行少于20行
output<-matrix(,20,)
这里我想在$ intenstity上应用estimateBaseline函数,使用不同的迭代次数,我不知道该怎么做
iteration <- c(100, 200, 300, 400, 500)
for (i in 1:length(fiedler2009subset)){
output[,i] <- estimateBaseline(fiedler2009subset[i], method="SNIP",iterations=100)
}
答案 0 :(得分:1)
您可以执行以下操作:
output<-list()
for (i in 1:length(fiedler2009subset)){
output[[i]] <- estimateBaseline(fiedler2009subset[[i]], method="SNIP", iterations=100)
}
output
现在是一个列表。通过lapply,您可以通过每个元素loop
:
lapply(output, head, 2)
[[1]]
mass intensity
[1,] 1000.015 3149
[2,] 1000.117 3134
[[2]]
mass intensity
[1,] 1000.015 3709.00
[2,] 1000.117 3701.75
[[3]]
mass intensity
[1,] 1000.015 3834
[2,] 1000.117 3789
将其另存为matrix / data.frame:
df <- do.call(cbind, output)
发表评论后,你可以这样做:
output<-list()
for (i in 1:length(fiedler2009subset)){
tmp <- do.call(cbind, lapply(iteration, function(x) estimateBaseline(fiedler2009subset[[i]], method="SNIP", iterations= x)))
# clean up
rownames(tmp) <- tmp[, 1]
tmp <- tmp[, -seq(1, length(iteration)*2, by=2)]
colnames(tmp) <- paste0(colnames(tmp), "_", iteration)
output[[i]] <- tmp
}