首页 > 解决方案 > 编写 R 函数时检索列表的元素

问题描述

我正在编写一个 R 函数,我想检索列表中的一些元素。这在函数之外很容易做到,但是在创建函数时我无法让它运行。

请参阅下面我想要实现的最小工作示例。

#outside a function - it works
A <- list(42)
B <- list(142)

my_list <- list(a=A,b=B)
test = my_list$a

-> test 确实是一个包含 1 个元素的列表:42。

#within a function - it does not work
myfunction = function(obj,whatIwant){
  test = obj$whatIwant
  return(test)
}
test2 = myfunction(my_list,a)

-> test2 为 NULL(空)。我本来期望一个包含 1 个元素的列表:42。

先感谢您。

标签: rlistfunction

解决方案


我们可以使用obj[[whatIwant]]来获取对象:

#outside a function - it works
A <- list(42)
B <- list(142)

my_list <- list(a=A,b=B)
test = my_list$a

#within a function - it does not work
myfunction = function(obj,whatIwant){
  test = obj[[whatIwant]]
  return(test)
}
test2 = myfunction(my_list, "a")

推荐阅读