在R中返回的带有多个操作的If语句不返回预期的内容?
我构建的函数如下所示:在R中返回的带有多个操作的If语句不返回预期的内容?,r,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]
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
}
我希望我的函数返回的值指示哪些值来自<0.7,哪些值来自<0.3。看来我的函数只计算了第一个条件。需要帮忙吗?我将值存储在矩阵中
x
必须包含维度、行和列。如果要将每个结果存储在列中,则需要在循环中每次递增列
x[1, i] <- u[i] * 2
x[2, i] <- x[1, i] * 4
# etc.
x[1,i]您期望的输出是什么?x[1]是右上角的条目;x[1]。。。x[4]只是第一列。如果要填充x的其他列,则需要告诉函数这样做。x
必须包含维度、行和列。如果要将每个结果存储在列中,则需要在循环中每次递增列,x[1,i]@Gregor your是正确的,这正是我想要的。请你把它作为答案,这样我就可以接受了。
x[1, i] <- u[i] * 2
x[2, i] <- x[1, i] * 4
# etc.