0

我想生成具有越来越多的代表的集合。最后,我需要一个矩阵或 data.frame,由 100 行组成,其中包含i多个代表(例如它1)。但是有以下错误。诀窍是什么?我错过了什么?

Error: no function to return from, jumping to top level

for(i in 1:100) {
    x <- c(rep(1,i),rep(100000,(2500-i)))
    return(x)
}

非常感谢!

4

1 回答 1

1

您只能return在函数内使用。一种解决方案是创建一个矩阵来存储结果,如下所示:

R> m = matrix(0, ncol=100, nrow=2500)
R> 
R> for(i in 1:100) {
+   m[,i] = c(rep(1, i), rep(100000, (2500-i)))
+ }

应该做的伎俩。或使用以下sapply功能:

m1 = sapply(1:100, function(i) c(rep(1, i), rep(100000,(2500-i))))

有关信息,您的代表功能也可以简化为:

rep(c(1, 1000000), c(i, 2500-i))
于 2013-08-14T08:29:11.343 回答