R语言中$和@各自的作用是什么

$表示从一个dataframe中取出某一列数据;@是从R的类实例里面读取数据。$是S3类的引用方式,$比较常用,当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return,这时如果想提取某个变量的结果,就需要用到$。

$表示从一个dataframe中取出某一列数据;@是从R的类实例里面读取数据。

$是S3类的引用方式,$比较常用,当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return,这时如果想提取某个变量的结果,就需要用到$,默认情况下,对于list, environment 这两种对象,$可以提取(extract)出里面的元素,对于自己定义的class,可以实现$ S3 Method。通常我们的data.frame, list. 向量等用$就可以。

@是S4类的引用方式。@比较少用。对于 S4 object,@可以提取出 slot。

比如

m1<-lm(Y~X,data=….(some data frame))

m1$coefficients

就会返回回归直线的截距和斜率。

x$y 等价于 x[[“y”, exact = FALSE]],用于获取dataframe或者list里面的某个变量,

比如mtcars$cyl 和diamonds$carat。不同之处在于 $ 可以部分匹配变量名,比如:

x <- list(abc = 1)

x$a

#> [1] 1

x[[“a”]]

#> NULL

S4也有例如,有个维恩包Vennerable:S4类型,想取得里面IntersectionSets,信息必须用@符号。

@ 是R中,S4类的一个操作符,用于提取S4对象中的内容(slot),比如:

setClass(“Person”,

slots = list(name = “character”, age = “numeric”))

alice <- new(“Person”, name = “Alice”, age = 40)

alice@age

> [1] 40

这个时候是不起作用的,因为被S4类重写了。可以自己定义

的行为。

延伸阅读:

什么是R语言?

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优异工具。

R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来新西兰奥克兰大学的Robert Gentleman和Ross Ihaka及其他志愿人员开发了一个R系统。由“R开发核心团队”负责开发。R可以看作贝尔实验室(AT&T BellLaboratories)的Rick Becker、John Chambers和Allan Wilks开发的S语言的一种实现。当然,S语言也是S-Plus的基础。所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。

文章标题:R语言中$和@各自的作用是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39042

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编的头像小编

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部