我建立了这样的功能:
my_fun <- function(x){
u <- runif(4,0,1)
x <- matrix(0,4,4)
for (i in 1:4){
if (u[i]< 0.7){
x[1] <- u[1]*2
x[2] <- x[1]*4
x[3] <- x[2]*x[1]
x[4] <- x[3]
}else{
x[1] <- u[1]*1
x[2] <- x[1]*3
x[3] <- x[2]*x[1]
x[4] <- x[3]
}
}
x
}
然后我的函数返回:
> my_fun(3)
[,1] [,2] [,3] [,4]
[1,] 0.4207944 0 0 0
[2,] 1.2623833 0 0 0
[3,] 0.5312038 0 0 0
[4,] 0.5312038 0 0 0
我希望我的函数返回值,这些值指示哪些值来自&lt; 0.7和哪一个来自&lt; 0.3。似乎我的功能只能克服第一个条件。有什么帮助吗?我将值存储在矩阵中。
答案 0 :(得分:0)
x
必须包含尺寸,行和列。如果要将每个结果存储在列中,则需要在每次循环时增加列,
x[1, i] <- u[i] * 2
x[2, i] <- x[1, i] * 4
# etc.