R笔记(1):formula和Formula
#####开一个新的系列。关于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的更多相关文章
- 【R笔记】R语言函数总结
R语言与数据挖掘:公式:数据:方法 R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字 ...
- 【R笔记】glm函数报错原因及解析
R语言glm函数学习: [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. glm函数介绍: glm(for ...
- R笔记4:ggplot绘制商务图表--玫瑰图
我们说Excel有难度的图表,可以考虑ggplot2是否更方便,本帖的例子就是用ggplot做玫瑰图. Excel做玫瑰图有一定难度,可以使用雷达图或圆环图来构建,我的博客上曾有多个帖子讨论这个,见 ...
- 【R笔记】使用R语言进行异常检测
本文转载自cador<使用R语言进行异常检测> 本文结合R语言,展示了异常检测的案例,主要内容如下: (1)单变量的异常检测 (2)使用LOF(local outlier factor,局 ...
- 【R笔记】日期处理
R语言学习笔记:日期处理 1.取出当前日期 Sys.Date() [1] "2014-10-29" date() #注意:这种方法返回的是字符串类型 [1] "Wed O ...
- 【R笔记】R的内存管理和垃圾清理
笔记: 1.R输入命令时速度不要太快,终究是个统计软件,不是编程! 2.memory.limit()查看当前操作系统分配内存给R的最大限度(单位是M?) 3.要经常 rm(object) 或者 rm( ...
- 【R笔记】给R加个编译器——notepad++
R的日记-给R加个编译器 转载▼ R是一款强大免费且开源的统计分析软件,这是R的长处,可也是其“缺陷”的根源:不似商业软件那样user-friendly.记得初学R时,给我留下最深印象的不是其功能的强 ...
- 【R笔记】R语言中的字符串处理函数
内容概览 尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串同样极为重要.从医疗研究数据里的出生日期到文本挖掘的应用,字符串数据在R程序中使用的频率非常高.R语言提供了很多字符串操作函数,本文仅简 ...
- 【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 & ...
随机推荐
- Divide Groups(分组)
题目链接 题目大意是说输入数字n 然后告诉你第i个人都认识谁? 让你把这些人分成两堆,使这每个堆里的人都互相认识. 做法:把不是互相认识的人建立一条边,则构建二分图,两堆的人肯定都互相认识,也就是说, ...
- Sql日期时间格式转换大全
简介:我们经常会用到sql日期转换,这里列出了日期输出为字符串的所有代码 输出格式 2014-06-12 ), ) 输出格式 2014-06-12 22:31:18 ), ) 以下是各种转换日期代码号 ...
- JSON对象、JSON字符串的相互转换
JSON对象.JSON字符串的相互转换 json的格式: 第一种方式: 单一的json字符串,转换成json对象时,需要 eval('(' + json + ')');这样的格式,中间需要加括号 va ...
- DHTMLX 修改方法加参数
dhtmlx下拉框选项过长,导致显示不全,所以在下拉框里加了title 具体方法如下: dhtmlXCombo.prototype.modes.checkbox.render=function(c, ...
- LVS + keepalived(DR) 实战
一.LVS体系结构 使用LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用Load Balancer表示,中间的服务器群组层,用Server Array表示,最底端的数据共享存储层,用S ...
- Spring事务管理的实现方式之编程式事务与声明式事务详解
原创说明:本博文为原创作品,绝非他处转载,转载请联系博主 1.上篇文章讲解了Spring事务的传播级别与隔离级别,以及分布式事务的简单配置,点击回看上篇文章 2.编程式事务:编码方式实现事务管理(代码 ...
- (一)java多线程之Thread
本人邮箱: kco1989@qq.com 欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco github: https://github.com/kco198 ...
- API 管理工具
API 管理工具 你还苦于无法有效的管理大量的API吗?今天给大家介绍一款API的管理工具.这款工具可以免费使用,虽然中途可能会提示你购买,但并不影响我们的使用. 下载地址: Windows:http ...
- JQuery简单动画效果的发生顺序和animate方法
(1)在同一组元素上的效果 当在一个.animate()方法中以多个属性的方式应用时,是同时发生的. 当以方法连缀的形式应用时,是按顺序发生的(排队效果)---除非queue选项值为false. (2 ...
- ms_celeb_1m数据提取(MsCelebV1-Faces-Aligned.tsv)python脚本
本文主要介绍了如何对MsCelebV1-Faces-Aligned.tsv文件进行提取 原创by南山南北秋悲 欢迎引用!请注明原地址 http://www.cnblogs.com/hwd9654/p/ ...