$表示从一个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