• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言中括号[1]与双中括号[[1]]的差异?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 
#   获取操作符[[的帮助
?`[[`

 

相同点:

两者作用都是“提取”,当从一个向量或矩阵中提取第3个元素时,两者结果相同!

> aaa<-c(1,2,3,4,5)
> aaa[3]
[1] 3
> aaa[[3]]
[1] 3
不同点:

当数据不是一个list时,情况就不同了。
[] extracts a list, [[]] extracts elements within the list
The [[ form allows only a single element to be selected using integer or character indices, whereas [ allows indexing by vectors.

 
> alist <- list(c("a", "b", "c"), c(1,2,3,4), c(8e6, 5.2e9, -9.3e7))
> alist[[1]]
[1] "a" "b" "c"
> alist[1]
[[1]]
[1] "a" "b" "c"
看起来结果一样,但其实数据类型不一样的:
> str(alist[[1]])
 chr [1:3] "a" "b" "c"
> str(alist[1])
List of 1
 $ : chr [1:3] "a" "b" "c"

 另一个区别是 [[ 可通过参数“exact”激活模糊匹配,[]则不行。

#   定义list对象
li <- list(name='yiifaa', age=35)
#   从list提取元素一定要用[[]]
#   模糊匹配到name
li[['nam', exact=FALSE]]

 

R有三个基本的索引操作符,其语法由以下示例显示

    x[i]
    x[i, j]
    x[[i]]
    x[[i, j]]
    x$a
    x$"a"

对于向量和矩阵,[[表单很少使用,尽管它们与表单有一些细微的语义差异[(例如,它删除任何名称或dimnames属性,并且部分匹配用于字符索引)。使用单个索引索引多维结构时,x[[i]]或者x[i]将返回第ith个顺序元素x

对于列表,通常用于[[选择任何单个元素,而[返回所选元素的列表。

[[表单只允许使用整数或字符索引选择单个元素,而[允许通过向量进行索引。请注意,对于列表,索引可以是向量,向量的每个元素依次应用于列表,所选组件,该组件的选定组件等。结果仍然只是一个元素。

ref

https://www.jianshu.com/p/f41642cfb7e1

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言快速入门发布时间:2022-07-18
下一篇:
R语言将所有列数据正交化/缩放发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap