我想逐行填充矩阵,将函数应用到上一行以生成下一行。我是新手试图使用<form method="GET" action="list" id="searchform" name="searchform">
<input type="text" name="search1">
<input type="text" name="search2">
<input type="text" name="search3">
<button type="submit" id="submitz">Submit</button>
</form>
而不是显而易见的apply
循环。但是,因为for
将结果作为列向量返回,所以当它移动到下一行时,该行没有必要的内容。这是一个示例,其中每一行应该是前一行的两倍,带有一个起始行。
apply
我想要的是这样的:
trial <- matrix(ncol = 3, nrow = 5)
trial[1,] <- c(1, 2, 3)
trial[2:5, ] <- apply(trial[1:4, ], MARGIN = 1, function(x) (x * 2))
trial
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 2 NA NA
[3,] 4 NA NA
[4,] 6 NA NA
[5,] NA NA NA
我没有看到在for(i in 2:5){
trial[i,] <- trial[i-1,] * 2
}
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 2 4 6
[3,] 4 8 12
[4,] 8 16 24
[5,] 16 32 48
内部或外部使用转置的方法,以使其在行向下时返回行向量。
apply
这里的解决方案不正确吗?我是否努力避免apply
循环并按R方式执行操作?