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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月21日 上午2:19
下一篇 2023年2月21日 上午2:21

相关推荐

  • 园林绿化工程项目如何管理

    园林绿化工程项目的管理涉及到多个方面,包括但不限于项目规划、成本控制、时间管理、质量保障、环境保护、团队协作等。在这些方面中,项目规划、成本控制、时间管理、质量保障是核心观点。尤其是项目规划,它是整个工程管理过程中的基础和前提,涉及到工程的设计、预算编制以及资源分配等关键环节,是成功完成园林绿化工程…

    2024年4月11日
    4700
  • 澳洲devops什么意思

    澳洲DevOps代表一种目前在澳大利亚技术领域中普及的开发(Development)与运维(Operations)的结合。1、提高软件交付效率、2、增强团队跨功能协作、3、促进开发与运维的无缝集成为其主旨。在1中,提高软件交付效率通过自动化构建、测试与部署流程,减少人为干预,有效提升部署速度与质量。…

    2024年3月26日
    7600
  • 跨国研发团队与本地团队的管理差异

    当探讨跨国研发团队与本地团队在管理上的差异时,1、沟通方式、2、团队文化、3、项目协调、4、合规性要求成为关键指标。跨国团队面临着沟通方式的适应性问题,必须克服不同地区和文化带来的挑战。团队文化的差异需要重视多元文化的融合与和谐共存。在项目协调方面,涉及时区差异和任务分配特异性问题。另外,合规性要求…

    2023年11月14日
    24100
  • 为什么云原生有利于快速迭代开发

    云原生极大地促进了快速迭代开发的能力,主要得力于以下几点:1、灵活的服务部署和伸缩、2、微服务架构的应用、3、容器技术的广泛采用、4、自动化的运维流程、5、成熟的生态系统。其中,特别值得深入探讨的是微服务架构的应用。微服务通过将复杂的应用拆分为一系列小而自治的服务,每个服务都维护自己的数据模型和业务…

    2023年12月28日
    20300
  • oa无纸化系统

    ### 摘要 OA无纸化系统意在以技术手段降低企业对纸质文件的依赖,推进办公自动化、提升数据处理效率、增强信息安全。该系统充分利用电子文档的便捷与高效,在审核流程、存档检索、远程协作等方面展现显著优势。尤其在文件存档和检索方面,无纸化系统通过电子化存储,不仅减少了物理空间的占用,还能通过关键词搜索快…

    2024年1月12日
    34100
  • devops核心内容是什么

    针对“DevOps核心内容是什么”一事,需清楚掌握三大元素:1、连续整合与连续交付、2、自动化测试、3、合作与沟通。其中,连续整合与连续交付是DevOps中最为关键的实践,意在消灭软件交付过程中的瓶颈,确保代码在任何时刻都处于可发布状态,大大提升了软件开发及部署的效率与质量。 一、连续整合与连续交付…

    2024年3月26日
    5700
  • 如何管理跨部门项目工作

    管理跨部门项目工作是一个复杂而又至关重要的任务。成功的跨部门项目管理依赖于有效的沟通、周密的计划、灵活的决策能力、以及良好的团队协作。其中,有效的沟通无疑是最关键的因素。有效的沟通不仅指明确、及时地传达信息,更包括确保信息的准确理解以及快速解决因沟通不畅带来的问题。这要求项目管理者具有高超的沟通技巧…

    2024年4月10日
    5100
  • devops职位什么时候最忙

    标题:DevOps职位何时最为繁忙? 摘要:在DevOps职位的繁忙程度方面,主要可归结于三个关键时期:1、产品发布前夕、2、大规模系统升级期间、3、突发事件应对时刻。尤其是在产品发布前夕,DevOps工程师的工作压力显著增加,需要确保所有自动化部署流程无误、环境稳定和可靠、并对可能出现的问题做好充…

    2024年3月26日
    6300
  • 如何快速拓展项目规模管理

    快速拓展项目规模管理可以通过精准定位项目需求、制定灵活多样的策略、加强团队协作和沟通、采用先进的技术和工具、强化风险管理和预防等方法实现。精准定位项目需求是其中的核心,这意味着项目管理者需要通过深入分析项目目标、用户需求和市场情况,确定项目的具体目标和范围。这样做不仅可以避免资源的浪费,还能确保项目…

    2024年4月10日
    3300
  • 需求优先级排序方法、依据、以及工具是什么

    排列优先级是对需求进行排序以确定它们对于相关方的相对重要性。优先级排序的依据有:1、收益;2、惩罚;3、成本;4、风险;5、依赖关系;6、时间敏感性;7、稳定性;8、监管或政策合规,其中针对变革的宗旨和目标进行衡量的实施需求能够为相关方所带来的好处。 一、什么是需求优先级排序,目的是什么? 排列优先…

    2022年11月21日
    1.3K00

发表回复

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

400-800-1024

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

分享本页
返回顶部