Pass arguments to function

匿名 (未验证) 提交于 2019-12-03 02:20:02

问题:

I have an understanding problem with passing arguments to a function in R.

In the following example, I retrieve a value from a named list by name. When I do it directly, it returns the value. But when I put the same code into a function, it returns NULL. What happens here?

Thanks in advance, Mirko

namedlist <- list(a=c("50", "80"), b=c("50"))   namedlist$a # returns: [1] "50" "80"  myfunction <- function(arg){ namedlist$arg } myfunction(a) # returns: NULL 

回答1:

You are requesting:

namedlist$arg

and of course there isn't a component with the name "arg" in namedlist, hence the return value NULL.

this type of subsetting the list will work:

myfunction <- function(arg) {     namedlist[[arg]] } 

and returns the same as namedlist$a, but you do need to pass the component name as a string:

> namedlist$a [1] "50" "80" > myfunction(a) Error in myfunction(a) : object 'a' not found > myfunction("a") [1] "50" "80" 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!