如何在向量或矩阵索引上使用应用函数

how to use apply functions familly on vector or matrix index

有没有办法使用 X 函数使用特定索引写入矩阵或向量或简单地处理索引?

例如

myVec <- numeric(10)
apply(1:9, 1, function(i,a){ if(i%%2!=0) myVec[i] <-log(a)^i else myVec[i+1] <- a^i},3)

以下两个答案都应该有效。您得到的错误是因为 apply() 采用矩阵并在边距上应用函数(=1 按行表示)。所以我根据你的代码创建了一个 9 x 1 矩阵。

    apply(matrix(1:9,nrow=9,ncol=1), 1, function(i,a){ if(i%%2!=0) myVec[i] <-log(a)^i else myVec[i+1] <- a^i},3)
[1]    1.098612    9.000000    1.325969   81.000000    1.600377  729.000000    1.931573 6561.000000    2.331310
    sapply(1:9, function(i,a){ if(i%%2!=0) myVec[i] <-log(a)^i else myVec[i+1] <- a^i},3)
[1]    1.098612    9.000000    1.325969   81.000000    1.600377  729.000000    1.931573 6561.000000    2.331310