-1
我有一个矩阵:R:调用函数
x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
dimnames(x)[[1]] <- letters[1:8]
如何以下代码工作?
cave <- function(x, c1, c2) c(mean(x[c1]), mean(x[c2]))
apply(x,1, cave, c1="x1", c2=c("x1","x2"))
特别是我不理解的说法,c(mean(x[c1]), mean(x[c2]))
功能cave
内。
另外我们用这种方式调用函数cave(x,a,b)
。但是在apply
函数中,当我们调用cave
函数时,输入是哪里?
这应该是有用的https://nsaunders.wordpress.com/2010/08/20/a-brief-introduction-to-apply-in-r/ –
请注意,循环行和平均的子集元素的效率低于使用内置矢量化函数执行此类操作的效率。例如,在这种情况下运行'rbind(rowMeans(x [,“x1”,drop = F)),rowMeans(x [,c(“x1”,“x2”)]))“或者,甚至更好,'rbind(x [,“x1”],rowMeans(x [,c(“x1”,“x2”)]))''。 – josliber