$是S3类的引用方式,@是S4类的引用方式。$比较常用,@比较少用。通常我们的data.frame, list. 向量等用$就可以。
S4也有例如,有个维恩包Vennerable:S4类型,想取得里面IntersectionSets,信息必须用@符号。
当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return,这时如果想提取某个变量的结果,就需要用到$,默认情况下,对于 `list`, `environment` 这两种对象,`$`可以提取(extract)出里面的元素。
扩展资料:
R语言操作环境:
R是一套由数据操作、计算和图形展示功能整合而成的套件。包括:有效的数据存储和处理功能,一套完整的数组(特别是矩阵)计算操作符,拥有完整体系的数据分析工具。
为数据分析和显示提供的强大图形功能,一套(源自S语言)完善、简单、有效的编程语言(包括条件、循环、自定义函数、输入输出功能)。
在这里使用”环境”(environment)是为了说明R的定位是一个完善、统一的系统,而非其他数据分析软件那样作为一个专门、不灵活的附属工具。
R很适合被用于发展中的新方法所进行的交互式数据分析。由于R是一个动态的环境,所以新发布的版本并不总是与之前发布的版本完全兼容。
某些用户欢迎这些变化因为新技术和新方法的所带来的好处;有些则会担心旧的代码不再可用。尽管R试图成为一种真正的编程语言,但是不要认为一个由R编写的程序可以长命百岁。
参考资料来源:百度百科-R语言
$是S3类的引用方式。
当一个函数里需要返回多个值(比如有变量,有向量,有矩阵)时,我们要用list,而不是return,这时如果想提取某个变量的结果,就需要用到$,默认情况下,对于 `list`, `environment` 这两种对象,`$`可以提取(extract)出里面的元素。
x$y 等价于 x[["y", exact = FALSE]],用于获取dataframe或者list里面的某个变量,比如mtcars$cyl 和 diamonds$carat。不同之处在于 $ 可以部分匹配变量名,比如:
x <- list(abc = 1)
x$a
#> [1] 1
x[["a"]]
#> NULL
扩展资料
@是S4类的引用方式
$比较常用,@比较少用。
S4也有例如,有个维恩包Vennerable:
下面的w 就是S4类型,想取得里面IntersectionSets,信息必须用@符号:
library(Vennerable)
data(StemCell)
w <- Venn(Sets=StemCell[1:2])
plot(w, type="squares")
w@IntersectionSets
我知道的只有取某个object(数据框,list比如lm object,etc)的某个部分
比如
m1<-lm(Y~X,data=....(some data frame))
m1$coefficients
就会返回回归直线的截距和斜率。
还有数据框,可以用数据框名$变量名取变量……这样的。