0
我建我的功能是这样的:如果R中有多个操作返回的语句没有返回预期的结果?
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
我想我的函数返回的值来自< 0.7和从<一个值,这表明0.3。看来我的功能只能保证第一个条件。请帮忙吗?我将这些值存储在矩阵中。
您的预期输出是什么? x [1]是右上角的条目; x [1] ... x [4]只是第一列。如果你想填充x的其他列,你需要告诉你的函数这样做。 – BLT
'x'必须是尺寸,行和列。如果要将每个结果存储在列中,则需要每次在循环中增加列,即x [1,i] < - u [i] * 2; x [2,i] < - x [1,i] * 4;'等等 – Gregor
@Gregor你正确的是我想要的。你能否把它作为答案,以便我可以接受它。 – Alice