月涌大江流

· 『所有网志』 (87)
· 红楼梦 (1)
· 诗言志 (1)
· 有关科学 (8)
· 转载 (17)
· 饮食养生 (6)
· 生活常识 (4)
· 学习笔记 (6)
· 杂感 (17)
· 时事动态 (9)
· 学人春秋 (14)
· 未分类 (4)
· 我的歪酷 非非共享界
· 天涯社区
· CSDN blog
· Bjarne Stroustrup's homepage
· 读书中文网
· 豆瓣
· 杨奎松个人网站
· 萨苏的BLOG
· 孔夫子旧书网
· COS论坛

订阅 RSS

0027307

歪酷博客

理想之灯 烛照万邦
« 上一篇: 常用快捷键 下一篇: An essay by: Dr. Julie Thompson-Maaloum »
聚散之间 @ 2007-09-14 12:22

R是在Bell实验室开发的S Language的一个开源实现版本,是一个很好用的数学统计和画图软件。基于S的S-Plus有着强大的画图功能,R某种程度继承了这一特点。R的优势还在于其小巧灵便,这点与Matlab的笨拙形成了鲜明的对照。R的说明文档极其简练实用,对每个函数的功能、参数、输出结果都有清楚明白的说明,后面一般有一些实例,直观地展示那个函数的用法;See also部分则给出了若干执行相关功能的函数,使得对R的学习可以自然扩展;如果想进一步了解函数背后的理论细节,References部分是很好的指引。下面是一些有用的R命令。 help() 或者 ? + command 这是学习和使用R最常用到的命令。 help.search() 搜索包含制定字串或pattern的命令 R.Version() 查看系统情况和版本 compareVersion() source() 执行R脚本 demo() 运行R的演示脚本,如demo(plotmath)演示数学注释(表达式)的情况 example() 自动执行命令的在线说明文档中的所有例子 工作环境(envioronment) commandArgs() 查看启动R时的命令行参数 getwd() 查看当前工作目录 setwd() 设定当前工作目录 list.files() 列出当前目录下的文件,同dir file.info() 查看指定文件的详细信息 file.access() load() 载入R数据文件或保存过的工作环境 save() 保存数据,与load相对 save.image() 将当前环境中的内容写入 .RData,q命令退出保存时调用此命令 dput() 按ascii格式将指定对象输出到文件,保留某些数据结构 dget() 从ascii格式文件中读取对象 ls() 列出指定环境中的对象,如果无参数,列出其调用环境中的对象 object() 同ls rm() 删除当前环境中的变量 exists() 在指定位置是否存在某变量 mget() 在指定环境中寻找指定的变量 get() 查询并返回指定名称的变量 search() 查看当前环境载入的包 appropos() 返回search函数搜索路径里所有与指定的模式匹配的对象 find() 同appropos Sys.getlocale() 查看当前的locale Sys.setlocale() 设置当前的locale Sys.Date() 返回系统日期 Sys.time() 返回系统认定的当前时刻 Sys.timezone() 当前时区 proc.time() 当前R session已经运行的时间 date() 查看当前日期与时刻 system.time() 返回执行某任务所花的时间 system() 执行系统命令 options() 查看或修改环境中的全局options getOption() 返回特定option的当前值 包操作(package) .libPaths() 查询或安装包的路径 library() 查看当前可用的包或调入某个包 attatch() 将一个包或“数据库”(database)加入当前workspace的搜索路径 chooseCRANmirrors() 选择默认的R镜像网站,更新和下载包时用 update.packages() 更新包 install.packages() 安装包 installed.packages 已经安装的包 available.packages() 在线资源库中可下载安装的包 old.packages() 已安装而有新版本的包 new.packages() 未安装而可安装的包 文件操作 (file operation) file() 打开一个文件 file.show() 显示文件内容,是R help system的核心函数 tempfile() 返回一个"临时文件"名 tempdir() 返回一个可写入的临时目录名,通常是用户家目录下的临时目录 unlink() 删除指定的文件 scan() 从文件里读数据 read.table() 将矩阵式排列的数据读入数据框型对象 readLines() 按行读取数据 writeLines() 按行输出数据 cat() 将对象(限于atomic vectors)输出到链接 print() 打印对象,用methods(print)来查看特定object的print命令. write.table() 将data frame,矩阵等格式的数据输出到文件 write() 更一般的输出到文件的方式 read.bin,write.bin 读取或输出二进制数据 download.file() 从指定的网址下载文件 object operation show() 查看对象的概况 class() 对象所属的类 mode() 对象元素的属性,如numeric,list,character typeof() 对象的内在属性,如integer,double,character attributes() 查看对象的属性(properties) 画图plot x11() 新建一个图形窗口 windows() windows下新建窗口命令 postcript() 设定postscript型的输出设备,其它如pdf(),jpeg(),png() dev.list() 列出当前环境中的绘图设备 dev.cur() 返回当前(active)设备号 dev.pre,dev.next 切换到上一个或下一个画图设备 dev.set() 设定当前设备 dev.copy() 把当前绘图设备的内容完整复制到指定的另一设备 dev.off() 关闭当前或某个绘图设备 graphics.off() 关闭除零设备之外的其他所有绘图设备 par() 列出或设定全局绘图参数 split.screen() 分割图形窗口 layout() 随心所欲地分割图形窗口,参数为一个矩阵 颜色 colors() 列出R的built-in colors rgb() 通过分别给出red,green,blue的值来产生调和色 col2rgb() 将三种格式的R颜色(名字,"#rrggbb",palette())转换成red,green,blue值 palette() 调色板 rainbow() 产生渐变的彩虹色 特定画图函数(particular plot) lines() 在已有图形中加“线” segments() 画线段 arrows() 画带箭头的线段 curve() hist() 直方图 barplot() 条形图 boxplot() 盒式图 contour() 等高线图 filled.contour() 等高线图,线之间以颜色填充 image() 颜色(与指定的数值相应,如二维平面上的密度)填充的二维格子图 persp() 三维表面图 doVennDiagram() 维恩图,from package 'limma' 统计 mean() 算术平均值 median() 中值 sd() 方差 rowSums colSums rowMeans colMeans 计算一个矩阵型数据的行(列)和或行(列)均值 rowsum() 对矩阵的每一列,分组计算数值之和 cov,var,cor 相关系数或相关系数阵 fivenum() 产生Tukey's five number summary summary() 比fivenum多mean和NA数 stem() 茎叶图(stem-and-leaf plot),一种粗略的统计 sample() 从给定序列中做指定次数的随机采样 findInterval() 返回第一个向量的元素在第二个向量(其value按升序排列)中的排序 mahalanobis() 计算向量的mahalanobis距离 runif() 产生均匀分布的随机数 dunif() 均匀分布的密度函数 qunif() 分位数函数 punif() 均匀分布的累积函数 rnorm() 产生服从正态分布的随机数 dnorm() 正态分布的密度函数 qnorm() 正态分布的分位数 pnorm() 正态分布的累积分布函数 其它统计分布类似,如rpois产生服从泊松分布的随机数 density() 用K.D.E方法计算密度分布 特定统计函数 wilcox.test() wilcox non-parametric rank test,位置(均值) fisher.test() fisher's exact test t.test() one or two sample t-test ks.test() one or two smaple Kolmogorov-Smirov test oneway.test() 检验来自正态分布的两个或多个样本是否具有相同的均值,无论方差的齐性如何 kruskal.test() Kruskal-Wallis rank sum test for whether the location of each group are different var.test() 检验来自正态总体的两个样本的方差是否一致(F test) ansari.test() Ansari-Bradley two-sample test for difference in scale parameters bartlett.test() test if the variances in each of the samples are the same fligner.test() Fligner-Killeen test,非参数多样本方差齐性检验 levene.test() assess the equality of variance in different samples,require package Rcmdr outlier.test() 计算线性拟合过程中的极值点的p-value Tests for Normality: Functions in package 'tseries' jarque.bera.test() Functions in package 'nortest' pearson.test Pearson chi-square test for normality lillie.test Lilliefors (Kolmogorov-Smirnov) test for normality cvm.test Cramer-von Mises test for normality ad.test Anderson-Darling test for normality sf.test Shapiro-Francia test for normality shapiro.test Shapiro-Wilk test of normality qqnorm normal probability plot (approximately performed) 注:几种normality test方法之间的相关性检测。使用R的rnorm函数产 生样本量为1000的标准正态分布采样,用每一种normality test函数分 别检验其正态性,算出一个p-value;循环10000次,每一种test都产 生一个长为10000的由p-value组成的向量与之对应,计算各向量之间 的相关系数得下表。可见,shapiro和sf、ad与cvm分别是相互关系最近的test,lillie与cvm也较接近。pearson与大家相距最远。因为shapiro和sf都有样本量的限制(3~5000),如果数据多于5000时,可用ad方法,它与大家的综合距离最小。 shapiro sf ad cvm lillie sf 0.940 ad 0.763 0.750 cvm 0.644 0.635 0.961 lillie 0.538 0.529 0.817 0.872 pearson 0.292 0.288 0.422 0.407 0.400 paste() 连接字符串 strsplit() 按照指定的模式分割字符串 sub, gsub() 字符替换,支持模式匹配,后者支持全局匹配 grep() 查找字符串,支持模式匹配 c() 合并对象 cbind() 按列合并 rbind() 按行合并 merge() 按列或行合并dataframe dim() 对象的维数,返回值为一个list dimnames() 返回或设置对象的每一维的名字 row.names() 返回或设置矩阵类对象的行的名称 colnames() 返回或设置矩阵类对象的列的名称 intersect() 两个向量的交 union() 两个向量的并 setdiff() 两个向量的差,结果与次序有关 setequal() 两个向量是否相等 which() 返回一个逻辑向量中值为真的元素的下标 with() 对一个envioronment中的变量执行某函数 unique() 去掉重复的元素 rep() 按照指定方式重复向量中的元素 cut() 将一个数值向量中的元素按指定的方式划分区间,返回一个factor变量 split() 将对象中元素按指定方式分组,返回由所有组所组成的列表 unlist() 拆分列表结构为向量,保留其中所有的atomic components order() 将向量中的元素按升序或降序排列,返回每个元素对应的index apply() 对一个对象的指定维的所有成员运行一个函数 lapply() 对一个变量的每个元素运行同一个函数,返回一个list sapply() 同sapply tapply () 对所给变量按照指定的分组方式分别运行一个函数 mapply rapply eapply range() 返回所有指定对象的最大和最小值 pretty() 计算一数值序列的等分位点 deparse() 以字符形式按原样输出表达式,对画图时的标注有用 substitute() 将表达式中的变量名替换为变量的值,其余部分不变 quote() 返回其参数,不做任何改变 format() 格式化输出 t() 矩阵转置 %*% 返回向量或矩阵的内积 diag() 返回、设定一个矩阵的对角元素;生成单位阵。 outer() or %o% 计算两个矩阵的外积 %in% 返回一个逻辑向量,当左边向量中的元素出现在右边对象中时为真 solve() 求解方程a %*% x = b. 当b为单位阵时x即为a的逆矩阵。 >,<,==,!= 比较数值或向量或factor变量,返回逻辑向量 identical 比较两个变量,返回一个逻辑值,适合做if和while的条件判断式 all.equal 比较两个变量,返回真值或某种相似度的描述 Dealing with missing values is.na() usage e.g. x[!is.na(x)]提取x中所有非NA的元素 na.omit() na.exclude() na.fail() complete.cases() 返回matrix或data frame中不包含NA值的行的行号



最新评论


Clair

2007-12-21 01:16 匿名 219.86.*.*

你好:
想請問您關於lm的問題
在R語言跑回歸,能否設限制式呢
ex. y=b0+b1x1+b2x2+b3x3
   想設定b1+b2+b3=0該如何寫程式碼呢
希望你能幫助我
這對我很重要
謝謝

直接加限制条件的方法我不知道有没有。
事实上,加限制等于减少了变元的个数.
如你的例子,四个系数中只有三个是独立的,
如令b3=-b1-b2
则回归方程变为:
  y=b0+b1(x1-x3)+b2(x2-x3)
lm里的formula可写为:
  y~I(x1-x3)+I(x2-x3)
这样拟合的结果将得到三个系数的值,即b0,b1,b2
而b3由b1和b2给出。
其它限制条件类推。

评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定