r - 可以使用部分名称访问列表成员吗?这是一个功能吗?

标签 r

考虑这个 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/

相关文章:

r - R中绘图中的连接点

RStudio 突然停止在绘图 Pane 中显示绘图

循环 : file(con, "r") 和 open.connection(con, "rb") 中的 R 错误

r - 使用 dplyr 计算 95%-CI 的长度

r - 有没有一种简单的方法可以判断 R 脚本是否使用了加载包中的任何函数?

r - R Markdown 报告中的中心DT数据表

Rcpp如何将IntegerVector转换为NumericVector

r - 如何在整个数据框中找到最小值的索引?

r - 两个单独列中的名称累积计数

r - 用 rmarkdown 编号一些部分