一个很短的问题:
X <- data.frame(x = runif(10), y = runif(10))
lapply(X, outer, Y = 0:2, FUN = "^")
FUN
应该作为附加参数传递给outer
,但R会假设它是传递给lapply
的函数。
除了
之外,还有什么方法可以解决这个问题fun <- function (x) outer(x, 0:2, "^")
lapply(X, fun)
或
vecX <- split(outer(unlist(X), 0:2, "^"), gl(2, 10, labels = names(X)))
lapply(vecX, matrix, nrow = nrow(X))
答案 0 :(得分:2)
看起来我在回答问题时不那么积极地变得愚蠢......只需按位置传递所有内容,按名称禁用参数匹配。
lapply(X, outer, 0:2, "^")