gpt4 book ai didi

r - 如果 `[` 是 R 中的子集函数,那么 `]` 是什么?

转载 作者:行者123 更新时间:2023-12-04 02:09:21 25 4
gpt4 key购买 nike

我正在阅读 Hadley Wickham 的高级 R 介绍,他指出 [(和 +、-、{ 等)是函数,因此 [ 可以以这种方式使用

> x <- list(1:3, 4:9, 10:12)
> sapply(x, "[", 2)
[1] 2 5 11

这是完全可以理解的。但是,如果 [ 是子集所需的函数,那么 ] 是否还有其他用途而不是语法用途?

我找到:
> `]`
Error: object ']' not found

所以我认为它没有其他用途?

最佳答案

这是语法和语义之间的根本区别。语义要求 - 在 R 中 - 诸如子集和 if 之类的事情等是函数。这就是为什么 R 定义函数 `[` , `if`等。

然后是语法。 R 的语法规定了 if 的语法要么是 if (condition) expressionif (condition) expression else expression .同样,R 中子集的语法是 obj[args…] .即,]只是一个句法元素,它没有语义等价物,没有相应的功能(与 else 相同)。

为了更清楚地说明这一点:

  • []是 R 中分隔子集表达式的句法元素。
  • 相比之下,`[` (注意反引号!)是一个实现子集操作的函数。
  • 关于r - 如果 `[` 是 R 中的子集函数,那么 `]` 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41548719/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com