考虑这个 R 代码
> l = list(key = 1)
> l$k
[1] 1
> l$ke
[1] 1
> l[['k']]
NULL
> names(l)
[1] "key"
这是否意味着您可以使用
$
访问列表成员?及其部分名称?当我在一次令人沮丧的 bug 搜寻后发现这一点时,我简直不敢相信自己的眼睛。这是R列表的功能吗?有它的名字吗?是否可以将其关闭?当您像 Python dict 一样使用它时,这会导致明显的麻烦。
最佳答案
这是一项旨在帮助交互模式的功能。可以局部拧紧,见help(options)
其中有
‘warnPartialMatchArgs’: logical. If true, warns if partial
matching is used in argument matching.
‘warnPartialMatchAttr’: logical. If true, warns if partial
matching is used in extracting attributes via ‘attr’.
‘warnPartialMatchDollar’: logical. If true, warns if partial
matching is used for extraction by ‘$’.
例子:
R> l <- list(key = 1)
R> l$k
[1] 1
R> options("warnPartialMatchDollar"=TRUE)
R> l$k
[1] 1
Warning message:
In l$k : partial match of 'k' to 'key'
R>
如果您愿意,您可以进一步将警告提升为错误(并且该选项在同一页面上进行了描述)。
关于r - 可以使用部分名称访问列表成员吗?这是一个功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525972/