R中的addmargins
函数无法在本地范围内查找函数。我的意思是这不起作用:
foo <- function(x) {
bar <- function(y) sum(y)
addmargins(x, c(1), list(new=bar))
}
foo(matrix(1:20, nrow=4))
# => Error in eval(expr, envir, enclos) : object 'bar' not found
这样做:
bar <- function(y) sum(y)
foo <- function(x) {
addmargins(x, c(1), list(new=bar))
}
foo(matrix(1:20, nrow=4))
# =>
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 5 9 13 17
# [2,] 2 6 10 14 18
# [3,] 3 7 11 15 19
# [4,] 4 8 12 16 20
# [5,] 10 26 42 58 74
如何在本地范围内使用addmargins
变量,如第一个示例所示。
答案 0 :(得分:1)
请尝试以下方法:
foo <- function(x) {
bar <- function(y) sum(y)
func <- list(new=bar)
addmargins(x, c(1), func)
}
foo(matrix(1:20, nrow=4))