从R

时间:2016-02-12 16:30:06

标签: r function variables

我在R中编写了一个函数,它返回一个由两个变量组成的列表。该函数正常工作,返回正确的值。然而,问题是我无法访问列表以进行进一步处理。代码是这样的:

grinder <- function(x) {

if(x == "BID") {
miles <- 18.4 * n.row
tolls <- 1.8 * n.row

} else if(x == "SPR") {
miles <- 10.8 * n.row
tolls <- 0

} else if (x == "BRI") {
miles <- 3.8 * n.row
tolls <- 0

} else if (x == "GOO") {
miles <- 66.2 * n.row
tolls <- 1.8 * n.row

} else if (x == "MIL") {
miles <- 108
tolls <- 0

} else if (x == "SMH") {
miles <- 94.6 * n.row
tolls <- 2 * n.row

}

mil.tol <- list(miles,tolls)
return(mil.tol)

}

grinder(x)

返回正确的值,但我无法访问mil.tol以对这些值执行任何操作。我也无法获得里程或通行费的正确值。控制台返回:

> mil.tol
Error: object 'mil.tol' not found
> miles

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

milestollsmil.tol都是函数的本地函数,不会返回,但您可以分配函数的输出(即来自return())比如下面的mil.tol:

mil.tol <- grinder(x)

还建议您阅读此SO帖子here