r - 编写 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。
先感谢您。
解决方案
我们可以使用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")
推荐阅读
- java - 战争文件中的 jar 加载顺序
- sql - 选择在 SQL Server 中返回奇怪的结果
- android - 如何在 LinearLayout 中加载动画作为背景?
- javascript - JavaScript 表格在加载/刷新时闪烁。我怎样才能避免这种情况发生?
- javascript - 我无法在 React / Typescript 上将图像导入我的模块,只需要作品
- amazon-redshift - SQL workbench/j 中的子查询和连接错误
- entity-framework - EF Core - 如何添加不可为空的外键属性?
- android - java.lang.NullPointerException:尝试在 android 2.1.3 中对空对象引用调用虚拟“void android.widget.TextView.setTest”
- android - 错误:清单合并失败:uses-sdk:minSdkVersion 7 不能小于版本 14
- javascript - Javascript - 将非常大的数字作为包含所有数字的字符串