R语言中的函数10:“[“, $,@, [[]]和[..., drop=FALSE]

本文详细介绍了R语言中取值操作符`[`, `$`, `[[`以及`@`的用法和区别。`[`用于按索引或名称取值,不改变数据类型;`$`常用于list和data.frame,支持模糊匹配;`[[`运算效率更高,适用于取特定元素;而`@`专门用于S4对象。通过实例展示了这些操作符的使用,并强调了在大数据处理中`[[`的效率优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

“[“, $和@都可以根据索引取值,但是它们使用范围不一样。
"["是按索引取值,或者名称取值,返回结果不改变数据类型
$经常用于list和data.frame中,以及S3对象中,采用模糊配合的模式从对象中取值;
[[]]也是根据索引或者名称取值,和$使用的对象一样,X[[‘a’,exact=FALSE]]和X$a是等价的。
@是针对S4对象进行取值的。

"["用法

"["(x,n)

参数介绍:
x: 具有索引值的对象,如vector,list
n: 是一个整数或者字符串

h=data.frame(abc=c(5,6))

'['(h,'abc')
#    abc
# 1   5
# 2   6

'['(h,1)
#    abc
# 1   5
# 2   6

$和[[]]的用法

x <- list(abc = 1)
x$a
# [1] 1

h=data.frame(abc=c(5,6))
h$a
# [1] 5 6

h[['a',exact=FALSE]]
# [1] 5 

注意从大数据的计算效率来看,[[]]的运算效率更高、

@的用法

library(ROCR)
data(ROCR.simple)
pred <- prediction( ROCR.simple$predictions, ROCR.simple$labels)
performance(pred,'auc')@y.values
# [[1]]
# [1] 0.8341875

[…, drop]的用法

[…, drop]是一种用于取子集的语法。默认情况下,当您从矩阵或数据框中选择单个行或列时,R 会将结果简化为向量。但是,参数drop=FALSE时,就会将一行或一列保持矩阵结构。

# 创建一个示例矩阵  
mat <- matrix(1:12, nrow = 4, ncol = 3)  
print(mat)  
# [,1] [,2] [,3]
# [1,]    1    5    9
# [2,]    2    6   10
# [3,]    3    7   11
# [4,]    4    8   12

# 选择第二行,使用 drop = FALSE  
result <- mat[2, , drop = FALSE]  
print(result)
# [,1] [,2] [,3]
# [1,]    2    6   10

result <- mat[2, , drop = TRUE]
print(result)
# [1]  2  6 10
#此时结果为向量不是矩阵了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值