参数传递给函数
问题描述:
我有一个认识问题,将参数传递给在R.参数传递给函数
在下面的功能。例如,我检索的名字命名列表中的值。当我直接做,它会返回值。但是,当我将相同的代码放入函数中时,它将返回NULL。这里发生了什么?
由于提前, 米尔科
namedlist <- list(a=c("50", "80"), b=c("50"))
namedlist$a
# returns: [1] "50" "80"
myfunction <- function(arg){ namedlist$arg }
myfunction(a)
# returns: NULL
答
您请求:
namedlist$arg
,当然没有名称为"arg"
在namedlist
,因此返回值的组件NULL
。
这种类型的子集划分的名单将工作:
myfunction <- function(arg) {
namedlist[[arg]]
}
,并返回相同namedlist $一个,但你需要通过组件名称为一个字符串:
> namedlist$a
[1] "50" "80"
> myfunction(a)
Error in myfunction(a) : object 'a' not found
> myfunction("a")
[1] "50" "80"
@Mirko此外,您还依赖于在全球工作空间中寻找某些东西的范围。编写`myfunction`将会是更好的做法,因为它是独立的,并且可以传入所有必需的对象作为参数。 `myfunction 2011-01-11 12:34:43