高级语言程序设计是学什么的:~(tilde)在R程序设计语言中的应用

我在关于回归建模的教程中看到以下命令:

myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

这个命令到底做了什么,命令中~(波浪号)的作用是什么?

230

<-右边的东西是一个formula对象。它通常用来表示统计模型,其中~左边的东西是响应,~右边的东西是解释变量。所以在英语中你会说“物种取决于萼片长度,萼片长度,

该行的myFormula <-部分将公式存储在名为myFormula的对象中,以便您可以在 R 代码的其他部分中使用它。

R 中公式对象的其他常见用法

lattice包将它们用于specify the variables to plot
ggplot2包将它们用于specify panels for plotting
dplyr包将它们用于non-standard evaulation

94

R 定义了一个用于公式的~(波浪号)运算符。公式有各种各样的用途,但也许最常见的是回归:

library(datasets)
lm( myFormula, data=iris)

help("~")help("formula")会教你更多。

@ Spacedman 已经介绍了基础知识,让我们讨论一下它的工作原理。

首先,作为一个操作符,请注意它本质上是一个函数的快捷方式(有两个参数):

> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs

这可能有助于了解在例如apply系列命令中的使用。

其次,您可以操纵公式作为文本

oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )

第三,你可以操纵它作为一个列表

myFormula[[2]]
myFormula[[3]]

最后,公式有一些有用的技巧(请参阅help("formula")了解更多):

myFormula <- Species ~ . 

例如,上面的版本与原始版本相同,因为点表示“尚未使用的所有变量”。这将查看您在最终模型调用中使用的 data.frame,查看 data.frame 中存在哪些变量,但在公式中没有明确提及,并用这些缺失的变量替换点。

7

总之,

The tilde(~)separates the left side of a formula with the right side of the formula.

例如,在线性函数中,它会将因变量与自变量分开,并且可以解释为“作为…的函数”。因此,当一个人的工资(工资)作为其受教育年限(years_of_education)的函数时,我们会做类似的事情,

wages ~ years_of_education

在这里

 Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width

这意味着,SpeciesSepal Length, Sepal Width, Petal Length and Petal Width的函数。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(446)
高级语言程序设计题库:~(tilde)在R程序设计语言中的应用
上一篇
语言程序开发:使用汇编语言开发 Android应用程序
下一篇

相关推荐

  • fortran编程语言构建高效的数值计算应用

    Fortran(FORmula TRANslation)是一种高级计算机编程语言,它可以用来编写高效的数值计算程序。它是一种强类型的、编译型的、通用的编程语言,广泛应用于科学计算和工程领域。Fortran语言提供了很多特性,例如变量,常量,过程,函数,数组,循环,判断等,使得程序员能够快速地编写出高效的程序。…

    2023-07-31 09:35:34
    0 26 29
  • Qt语言编程:Qt4是一种编程语言吗(qt programming language)

    关于Qt语言编程的问题,在qt programming language中经常遇到,Qt 4 是一种编程语言吗?它可以被视为 Java 和 Python 的替代品吗?它可以用于在 Linux 中开发用户交互软件吗?…

    2023-12-22 00:57:48
    0 42 53
  • 编程软件arduino:Arduino编程

    关于编程软件arduino的问题,在arduino dtmf decoder中经常遇到,这是我的代码。如果继电器 1 打开,则不要关闭继电器 2,如果继电器 2 打开,则不要关闭继电器 1。我一次只能打开一个继电器。我想要它,以便如果继电器 1 打开,则不要关闭继电器 2,如果它打开,反之亦然。…

    2024-01-24 04:35:18
    0 68 87
  • Gis开发用什么编程语言:GIS应用的最佳开发平台是什么 (best gis app for iphone)

    关于Gis开发用什么编程语言的问题,在best gis app for iphone中经常遇到,该产品将处理图像、定义边界、使用图层、多边形进行分析、导入形状文件、使用 Oracle 日志记录来定义边界和输入记录的应用程序。什么是理想的开发环境?因为我对 ESRI 的主要需求之一是如何将其作为理想的产品映射到市场上。…

    2024-06-30 08:22:05
    0 55 67
  • Symbol:Symbol()和Symbol.for()之间的区别

    我尝试使用Symbol键创建对象,并使用Symbol.for找到相应的值,但它不起作用:…

    2024-07-12 08:38:37
    0 40 94
  • 小孩学的编程课程是指什么:“Julia”(编程语言)的名称是指什么(julia programming)

    关于小孩学的编程课程是指什么的问题,在julia programming中经常遇到,“Julia”这个名字与数学中的Julia sets有关系吗?…

    2024-04-13 05:52:03
    0 28 18
  • Too dle do:太难的项目你是做什么的(dont work too hard)

    关于Too dle do的问题,在dont work too hard中经常遇到,当你被分配一个太难做的项目时,你会怎么做:…

    2024-01-02 01:23:33
    0 32 31
  • 编程语言中pow是求:什么是ruby编程语言中的“属性”(ruby-lang)

    关于编程语言中pow是求的问题,在ruby-lang中经常遇到,我有一个关于 Ruby 的非常基本的问题,我似乎无法从在线浏览中回答:…

    2024-04-11 01:18:23
    0 80 28

发表评论

登录 后才能评论

评论列表(54条)