《R语言实战》读书笔记--学习张丹日志
从张丹的日志(http://blog.fens.me/rhadoop-r-basic/)中第九条对象看到R对象的几个总结:
1、内在属性
mode length 所有对象都有的属性
2、外部属性
attributes() 函数可以查看外部属性;
attr(x,“a”) <- “b” 为x增加属性a,属性a的值为b。
3、对象的类属性
R中的所有对象都属于类(class),可以通过class函数查看。
对于简单的向量,类是对应的模式(mode)“numeric”“logical”等,而像矩阵、数组、列表等类和模式不一定一样。
第11条
outer函数,计算外积。
例子:
> a <- 1:3 > b <- 2:4 >f <- function(x,y) y/(1+x^2) > outer(a,b,f) [,1] [,2] [,3] [1,] 1.0 1.5 2.0 [2,] 0.4 0.6 0.8 [3,] 0.2 0.3 0.4
> f(a,b) [1] 1.0 0.6 0.4
可以用outer来计算任意两个向量元素的结果,见上面的例子。两个常规向量的外积是一个双下标的数组(就是矩阵,最大秩为1)。
aperm函数是对矩阵进行转置等操作。
a <- matrix(c(1:6),2,3) aperm(a,c(2,1)) #这里的意思是将a的第一个维度编程第二个维度,第二个维度变成第一个维度,即变成3行2列
crossprod()函数是完成矩阵和向量的“矢积”运算,更加高效。即
crossprod(X,y) 等价于 t(X) %*% y
关于数据框:
- 数值向量,逻辑值,因子保持原有格式,而字符向量会被强制转换成因子并且它的水平就是向量中出现的独立值;
直接用data()可以查看已有的包。
anova()用于比较统计模型,用于计算方差等。
methods()函数得到当前对某个类对象可用的范型函数的列表,比如
methods(class = "data.frame")
methods()也可以展示一个范型函数可以处理的类,比如
methods(plot)
下面这一段引用自张丹的日志(http://blog.fens.me/rhadoop-r-basic/),膜拜一下:
lm() 的返回值是一个模型拟合结果对象;技术上就是属于类"lm” 的一个结果列表。关于拟合模型的信息可以用适合对象类"lm" 的泛型函数显示,提取,图示等等。
add1 coef effects kappa predict residuals alias deviance family labels print step anova drop1 formula plot proj summary
- anova(object1 , object2) 比较一个子模型和外部模型,并且产生方差分析表。
- coef(object) 提取回归系数(矩阵)。全称:coefficients(object).
- deviance(object) 残差平方和,若有权重可加权。
- formula(object) 提取模型公式信息。
- plot(object) 产生四个图,显式残差,拟合值和一些诊断图。
- predict(object, newdata=data:frame) 提供的数据框必须有同原始变量一样标签的变量。结果是对应于data:frame中决定变量预测值的向量或矩阵。
- predict.gam(object,newdata=data:frame) predict.gam() 是安全模式的predict()。它可以用于lm, glm和gam 拟合对象。在正交多项式作为原始的基本函数并且增加新数据意味着必须使用不同的原始基本函数。
- print(object) 简要打印一个对象的内容
- residuals(object) 提取残差(矩阵),有权重时可加权,省略方式:resid(object)。
- step(object) 通过增加或者减少模型中的项并且保留层次来选择合适的模型。在逐步搜索过程中,AIC (Akaike信息规范)值最大的模型将会被返回。
- summary(object) 显示较详细的模型拟合结果
pairs(X)函数生成X的每一列对其余各列的散点图。注意这个函数的用法。
第18条
绘图函数分为三级:高级、