R统计笔记(四):中括号与双中括号的差异
来源:互联网 发布:恶灵退散意思知乎 编辑:程序博客网 时间:2024/05/29 11:32
理解的差异首先从语言方面开始,如果你有其他语言的惯性思维,比如JAVA、C或者Javascript,那对R语言中括号的理解,简直就是匪夷所思。
1. 所有的对象都可以引用中括号
是的,你没有看错,R语言中所有对象都可以引用中括号,包括标量(常量),如下:
# 标量第一个元素总是指向自己# 下面的表达式恒为真1[1] == 1# 既然上面的等式成立,那么下面的等式也成立1[1][1] == 11[1][1] == 1[1]
按照面向对象的思想,1[1][1] == 1[1]很好理解,那怎么理解[[1]]呢?是对[]的分解吗?
2. [[]]其实是一种方法
经过反复测试与查阅资料,[[]]要结合起来理解,它就代表一个方法,或者是一个原子的操作符,证明如下:
# 获取操作符[[的帮助?`[[`
得到的帮助内容如下:
Both [[ and $ select a single element of the list. The main difference is that $ does not allow computed indices, whereas [[ does. x$name is equivalent to x[["name", exact = FALSE]]. Also, the partial matching behavior of [[ can be controlled using the exact argument. getElement(x, name) is a version of x[[name, exact = TRUE]] which for formally classed (S4) objects returns slot(x, name), hence providing access to even more general list-like objects.
简单翻译以下, [[]]与$类似,都是list选取单个元素,唯一的区别是[[通过参数“exact”激活模糊匹配,如下:
# 定义list对象li <- list(name='yiifaa', age=35)# 从list提取元素一定要用[[]]# 模糊匹配到nameli[['nam', exact=FALSE]]
很神奇吧,[[]]竟然还支持模糊匹配。
结合第一条规则,我们还可以得出如下结论:
# 如果R语言支持对象比较的话,那么li[1] == lili[1][[1]] == li[[1]]# 继续玩转它们li[[1]][1] == li[[1]]
好了,看了这么多例子,那么如下的表达式该如何理解:
li[[[1]]]
当然是错误了,因为没有“[[[”这样的操作函数(符)。
结论
在R语言中,[]与[[]]都是操作函数,只是适用范围不一样,[[]]主要用于获取列表(list)中的元素,而[]则可以适用于所有对象,但不能按索引抓取列表(list)中元素。
阅读全文
0 0
- R统计笔记(四):中括号与双中括号的差异
- bash 括号(小括号,双小括号,中括号,双中括号,大括号)
- bash 括号(小括号,双小括号,中括号,双中括号,大括号)
- bash 括号(小括号,双小括号,中括号,双中括号,大括号)
- shell中单中括号与双中括号的区别
- shell 括号,双括号,中括号,双中括号
- shell中的括号(小括号,大括号,中括号)
- shell中的括号(小括号,中括号,大括号)
- shell中的括号(小括号,中括号,大括号)
- shell中的括号(小括号,中括号,大括号)
- shell中的括号(小括号,中括号,大括号)
- shell中的括号(小括号,中括号,大括号)
- Linux 中括号 双中括号 的区别
- python中,花括号,中括号,小括号的区别
- shell中单中括号和双中括号的区别
- Jquery-中括号与冒号([]与:)的用法
- JavaScript小括号、中括号、大括号的多义性
- JavaScript小括号、中括号、大括号的多义性
- SE02 Unit05 多线程基础 、 TCP通信
- 在cmd环境进入退出node
- HTML5常见的新增API详解
- Redis监控Web版管理工具
- RGB/HSV/YUV颜色空间模型总结
- R统计笔记(四):中括号与双中括号的差异
- 2017腾讯实习生Android客户端开发面试总结
- 集群技术(二)nginx1.2 -- nginx配置
- spring boot+jpa+druid多数据源集成示例
- Python黑帽子开篇
- C++中sort与qsort函数简介
- 适配器模式
- 无线接入网络之异构接入网络(HetNet)
- 设置数据框参考比例(如何让符号随比例尺变化)