0

当 x[1,1]=net2013 时,我得到的输出为 20。但是我必须做什么才能为 x 的第一列的所有元素(即:x[ ,1])执行这段代码。虽然循环没有执行,我在应用和 do.call 时遇到了问题。我必须使用 switch 语句并获得数万行的输出。请帮忙。

> z=10
> centre <- function(z,type){
+      switch(as.character(type),            
+             net2014=star2014(z), 
+             net2013=star2013(z))
+ }
> star2014 <- function(z)
+ {
+      z*5
+ }
> star2013 <- function(z)
+ {
+      z*2
+ }
> centre(z,x[1,1])
[1] 20
> centre(z,x[14,1])
[1] 50
4

1 回答 1

1

您需要的表达式可能是

  lapply(x[, 1], function(A) centre(z, A))

这里,x[, 1]是 的整个第 1 列x。lapply 一次迭代一个元素,应用函数centre

如果您想要简化的结果,请替换lapplysapply.

于 2014-12-31T06:18:36.290 回答