#####开一个新的系列。关于R的一些笔记,就是遇到过的一些问题的简单整理。可能很基本,也可能没什么大的用处,作为一个记录而已。
---------------------------------------------------------------------------
R笔记(1):formula和Formula

1.基本的R公式对象formula

在R当中,公式fomula是一个把响应变量(在~左侧)和解释变量(在~右侧)联系起来的对象。formula可以用在线性/一般线性模型(如lm(),glm()),树方法(如rpart())和图形表示(如coplot())以及其它一些场合(如table())。formula在这些场合中给出了关于统计模型的简洁而统一的符号模型形式y ~ model。

关于formula这种处理方法的思想可能最早来自于方差分析。在 Chambers and Hastie (1993) “Statistical Models in S” 这本书当中给出了S语言(以及后来的R语言)formula的明确参考。他们把统计模型的形式分为三个部分,其中“a formula that defines the structural part of the model-that is, what data are being modeled and by what other data, in what form”。

(1)formula的例:

fit2 <- lm(weight ~ height + I(height^2), data = women)

(2)关于formula所常用的符号,参见下表(取自R in action ):

 

(3)创建包含很多个解释变量的公式的一种方法是使用paste():

xnam <- paste0("x", c(1:10, 15, 20:25))
(f <- as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))
## y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x15 + 
## x20 + x21 + x22 + x23 + x24 + x25
# 或者
xnam <- paste("x", c(1:10, 15, 20:25), sep = "")
(f <- as.formula(paste("y ~ ", paste(xnam, collapse = "+"))))
## y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x15 + 
## x20 + x21 + x22 + x23 + x24 + x25
formula对象的细节参考:?formula

2.Fomula包

Formula包提供了关于R中模型公式的一个扩展,可以在~右侧(RHS)和(或)左侧(LHS)加入多个部分,相应的模型对象叫做Fomula。

这个包的目的是解决formula对象的一些局限:不支持多个响应变量也不方便处理由几个不同部分处理的公式。在一些R的扩展包当中用各自的方法处理这些问题,Forluma包希望给出一种统一的方法。

在形式上,Formula对象对于formula对象的扩展在于:引入新的运算符|以容纳模型的多个部分,并可将formula的运算符应用于LHS。

一个简单的例子:

library(Formula)
f1 <- y1 | y2 + y3 ~ x1 + I(x2^2) | 0 + log(x1) | x3/x4
F1 <- Formula(f1)
length(F1)
## [1] 2 3
length()的结果说明这个Fomula的左侧有两个部分,右侧有三个部分。

关于这个包的细节可参考: Zeileis A, Croissant Y (2010). “Extended Model Formulas in R: Multiple Parts and Multiple Responses.” Journal of Statistical Software, 34(1), 1–13.http://www.jstatsoft.org/v34/i01/.

转自:数据铺子

R笔记(1):formula和Formula的更多相关文章

  1. 【R笔记】R语言函数总结

    R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...

  2. 【R笔记】glm函数报错原因及解析

    R语言glm函数学习:  [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. glm函数介绍: glm(for ...

  3. R笔记4:ggplot绘制商务图表--玫瑰图

    我们说Excel有难度的图表,可以考虑ggplot2是否更方便,本帖的例子就是用ggplot做玫瑰图. Excel做玫瑰图有一定难度,可以使用雷达图或圆环图来构建,我的博客上曾有多个帖子讨论这个,见 ...

  4. 【R笔记】使用R语言进行异常检测

    本文转载自cador<使用R语言进行异常检测> 本文结合R语言,展示了异常检测的案例,主要内容如下: (1)单变量的异常检测 (2)使用LOF(local outlier factor,局 ...

  5. 【R笔记】日期处理

    R语言学习笔记:日期处理 1.取出当前日期 Sys.Date() [1] "2014-10-29" date() #注意:这种方法返回的是字符串类型 [1] "Wed O ...

  6. 【R笔记】R的内存管理和垃圾清理

    笔记: 1.R输入命令时速度不要太快,终究是个统计软件,不是编程! 2.memory.limit()查看当前操作系统分配内存给R的最大限度(单位是M?) 3.要经常 rm(object) 或者 rm( ...

  7. 【R笔记】给R加个编译器——notepad++

    R的日记-给R加个编译器 转载▼ R是一款强大免费且开源的统计分析软件,这是R的长处,可也是其“缺陷”的根源:不似商业软件那样user-friendly.记得初学R时,给我留下最深印象的不是其功能的强 ...

  8. 【R笔记】R语言中的字符串处理函数

    内容概览 尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串同样极为重要.从医疗研究数据里的出生日期到文本挖掘的应用,字符串数据在R程序中使用的频率非常高.R语言提供了很多字符串操作函数,本文仅简 ...

  9. 【R笔记】order函数例子

    问题: R中提供的例子不太懂,为什么得出的结果是6  5  2  1  7  4 10  8  3  9呢? (ii <- order(x <- c(1,1,3:1,1:4,3), y & ...

随机推荐

  1. Android 布局(线性布局、相对布局)

    一.线性布局(LinearLayout) <LinearLayout****</LinearLayout>1. orientation(布局方向)value=0 horizontal ...

  2. 跟着刚哥梳理java知识点——深入理解String类(九)

    一.String类 想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码: public final class String implements java.io.Ser ...

  3. dubbo+zipkin调用链监控

    分布式环境下,对于线上出现问题往往比单体应用要复杂的多,原因是前端的一个请求可能对应后端多个系统的多个请求,错综复杂. 对于快速问题定位,我们一般希望是这样的: 从下到下关键节点的日志,入参,出差,异 ...

  4. activity生命周期分析(两个activity之间跳转的生命周期执行顺序)

    NoteMainActivity点击跳转至NoteListActivity 我们都了解: 当A界面点击进入B界面时,此时         A===onPause--->onStop       ...

  5. 如何修改Xampp服务器上的mysql密码

    今天自己在搞php的过程中发现,如果我们使用Xampp服务器自带数据库mysql,就必须先修改mysql的密码,大家都知道,mysql的初始面为空,但是如果连接数据库是密码为空就会报错,在网上查找了很 ...

  6. tmux配置

    bind k selectp -U bind j selectp -D bind h selectp -L bind l selectp -R bind -r ^k resizep -U 5 bind ...

  7. NPOI操作类

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  8. Angular杂谈系列2-Angular2升级Angular4指南

    什么什么?Angualr4都发布了,之前不都才Angualr2的么?又要推翻重来,啊? 那当然不是,Angualr4只是一个版本号而已,本质上还是Angular2:以后,谷歌把新版本的Angualr称 ...

  9. [angularjs] MVC + Web API + AngularJs 搭建简单的 CURD 框架

    MVC + Web API + AngularJs 搭建简单的 CURD 框架 GitHub 地址:https://github.com/liqingwen2015/Wen.MvcSinglePage ...

  10. 在Angular项目下使用Umeditor

    Umeditor是百度旗下的开源富文本编辑器项目,目前用于百度贴吧,是ueditor的迷你版本. 公司的Angular后台管理项目需要上传一些新闻,用Umeditor十分适合.但是目前官方只提供Jsp ...