R语言实战(一) R语言介绍
从2018年秋季(大二上学期)开始接触R语言,曾在2019年寒假读过一遍本书的第一版,感觉受益匪浅,之后遇到问题也曾回头来查阅这本书,前几天刚学习过Simulink,趁现在有空再来温习这本书,回顾一下代码和各种命令,简单记录。
虽然感觉R的功能和用途不如MATLAB广泛,但是需要派上用场的时候如果能熟练地运用真的是很好的体验。
- R用方括号[ ]引用数组元素,而MATLAB用圆括号( ),同时使用它俩的时候总搞混;
- R不需要分号来结束语句;
- 如果之前运行过多行代码,R在Console中输入↑可同时得到多行,MATLAB在Command Window中输入↑只能得到单行。
但是它们还是有很多相似之处的:
- 数组下标从1开始,哈哈,和C、Python等不同;
- 都有交互式命令窗口,工作空间;
- 都有实时脚本等,很多很多……

1.1 为何要使用R
- 免费
- 功能全面
- 更新快
- 绘图强大
- 交互式,方便操作
- 数据导入导出方便
- 语言自然简单
- 可以被整合到其他语言编写的应用程序中
- 可运行于多种平台之上
1.2 R的使用
1.2.1 获取帮助
- help.start() 打开帮助文档首页
- help("foo")或?foo 查看函数 foo 的帮助(引号可以省略)
- example("foo") 函数 foo 的使用示例(引号可以省略)
- help.search("foo")或??foo 以 foo 为关键词搜索本地帮助文档
- RSiteSearch("foo") 以 foo 为关键词搜索在线文档和邮件列表存档
- apropos("foo", mode="function") 列出名称中含有 foo 的所有可用函数
- data() 列出当前已加载包中所含的所有可用示例数据集
> library(car)
载入需要的程辑包:carData
Warning message:
程辑包‘car’是用R版本3.5.2 来建造的
> data()
- vignette() 列出当前已安装包中所有可用的 vignette 文档
- vignette("foo") 为主题 foo 显示指定的 vignette 文档
1.2.2 工作空间
- getwd() 显示当前的工作目录
- setwd("mydirectory") 修改当前的工作目录为 mydirectory

- ls() 列出当前工作空间中的对象
- rm(objectlist) 移除(删除)一个或多个对象
- help(options) 显示可用选项的说明
- options() 显示或设置当前选项
例如设置输出小数位数:
> x=rnorm(3)
> x
[1] -0.1284972 0.1003854 -1.8987649
> options(digits=3)
> x
[1] -0.128 0.100 -1.899
- savehistory("myfile") 保存命令历史到文件 myfile 中(默认值为.Rhistory)
- loadhistory("myfile") 载入一个命令历史文件(默认值为.Rhistory)
- save.image("myfile") 保存工作空间到文件 myfile 中(默认值为.RData)
- load("myfile") 读取一个工作空间到当前会话中(默认值为.RData)
- save(objectlist, file="myfile") 保存指定对象到一个文件中
1.2.3 输入和输出
- source("filename") 在当前会话中执行一个脚本
- sink("filename")将输出重定向到文件filename中
默认情况下,如果文件已经存在,则它的内容将被覆盖。使用参数append=TRUE可以将文本追加到文件后,而不是覆盖它。参数split=TRUE可将输出同时发送到屏幕和输出文件中。不加参数调用命令sink()将仅向屏幕返回输出结果。
sink("sink-examp.txt")
i <- 1:10
outer(i, i, "*")
sink()

- cat()
Outputs the objects, concatenating the representations. cat performs much less conversion than print.
cat is useful for producing output in user-defined functions.
cat(... , file = "", sep = " ", fill = FALSE, labels = NULL, append = FALSE)
fill:a logical or (positive) numeric controlling how the output is broken into successive lines. If FALSE (default), only newlines created explicitly by "\n" are printed. Otherwise, the output is broken into lines with print width equal to the option width if fill is TRUE, or the value of fill if this is numeric. Non-positive fill values are ignored, with a warning.
labels:character vector of labels for the lines printed. Ignored if fill is FALSE.
example:
i<-1:10
text<-c("a","b","c","d")
cat(i,file="i.txt",sep="-",fill=10,labels=text)

图形输出:
- bmp("filename.bmp") BMP 文件
- jpeg("filename.jpg") JPEG 文件
- pdf("filename.pdf") PDF 文件
- png("filename.png") PNG 文件
- postscript("filename.ps") PostScript 文件
- svg("filename.svg") SVG 文件
- win.metafile("filename.wmf") Windows 图元文件
i <- 1:10
bmp("ii.bmp")
plot(i,i)
dev.off()
1.3 包
> .libPaths()
[1] "D:/R/R-3.5.1/library"
> search()
[1] ".GlobalEnv" "tools:rstudio"
[3] "package:stats" "package:graphics"
[5] "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods"
[9] "Autoloads" "package:base"
- install.packages() 安装一个包
- update.packages() 更新已经安装的包
- library() 载入一个包
- help(package="package_name")
1.4 批处理
reference: https://blog.revolutionanalytics.com/2009/06/running-scripts-with-r-cmd-batch.html
R CMD BATCH myscript.R myscript.Rout
#example.R
clotting <- data.frame(
u = c(5,10,15,20,30,40,60,80,100),
lot1 = c(118,58,42,35,27,25,21,19,18),
lot2 = c(69,35,26,21,18,16,13,12,12))
cat("Model data:\n")
print(clotting)
warning("Model starting")
obj <- glm(lot1 ~ log(u), data=clotting, family=Gamma)
cat("\nEstimated parameters:\n")
coef(summary(obj))
PS C:\Users\lenovo> cd Desktop
PS C:\Users\lenovo\Desktop> D:\R\R-..\bin\R.exe CMD BATCH example.R example.Rout
R version .. (--) -- "Feather Spray"
Copyright (C) The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (-bit) R是自由软件,不带任何担保。
在某些条件下你可以将其自由散布。
用'license()'或'licence()'来看散布的详细条件。 R是个合作计划,有许多人为之做出了贡献.
用'contributors()'来看合作者的详细情况
用'citation()'会告诉你如何在出版物中正确地引用R或R程序包。 用'demo()'来看一些示范程序,用'help()'来阅读在线帮助文件,或
用'help.start()'通过HTML浏览器来看帮助文件。
用'q()'退出R. [原来保存的工作空间已还原] > clotting <- data.frame(
+ u = c(,,,,,,,,),
+ lot1 = c(,,,,,,,,),
+ lot2 = c(,,,,,,,,))
> cat("Model data:\n")
Model data:
> print(clotting)
u lot1 lot2 > warning("Model starting")
Warning message:
Model starting
> obj <- glm(lot1 ~ log(u), data=clotting, family=Gamma)
> cat("\nEstimated parameters:\n") Estimated parameters:
> coef(summary(obj))
Estimate Std. Error t value Pr(>|t|)
(Intercept) -. . -. .279149e-
log(u) . . . .751191e-
>
> proc.time()
用户 系统 流逝
. . .
At the same time we can get a file with the suffix .RData.
Or we can just write the following two lines to a .bat file and double-click to run it.
cd C:\Users\lenovo\Desktop
D:\R\R-..\bin\R.exe CMD BATCH example.R example.Rout
Rscript
#example.R
argv<-commandArgs(TRUE)
x<-as.numeric(argv[1])
y<-as.numeric(argv[2])
cat("x=",x,"\n")
cat("y=",y,"\n")
cat("x+y=",x+y,"\n")
cat("x^y",x^y,"\n")
PS C:\Users\lenovo> cd Desktop
PS C:\Users\lenovo\Desktop> D:\R\R-..\bin\Rscript.exe example.R >output.ROut
Output in output.Rout:
x=
y=
x+y=
x^y
1.5 结果的重用
lmfit <- lm(mpg~wt, data=mtcars)
- summary(lmfit) 显示分析结果的统计概要
- plot(lmfit) 生成回归诊断图形
总结

R语言实战(一) R语言介绍的更多相关文章
- R语言实战(一)介绍、数据集与图形初阶
本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章 R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...
- R语言实战(二)数据管理
本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...
- 零基础数据分析与挖掘R语言实战课程(R语言)
随着大数据在各行业的落地生根和蓬勃发展,能从数据中挖金子的数据分析人员越来越宝贝,于是很多的程序员都想转行到数据分析, 挖掘技术哪家强?当然是R语言了,R语言的火热程度,从TIOBE上编程语言排名情况 ...
- R语言实战(四)回归
本文对应<R语言实战>第8章:回归 回归是一个广义的概念,通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量.效标变量或结果变量)的方法.通常,回归分析可以用来 ...
- 《数据挖掘:R语言实战》
<数据挖掘:R语言实战> 基本信息 作者: 黄文 王正林 丛书名: 大数据时代的R语言 出版社:电子工业出版社 ISBN:9787121231223 上架时间:2014-6-6 出版 ...
- R语言实战(七)图形进阶
本文对应<R语言实战>第11章:中级绘图:第16章:高级图形进阶 基础图形一章,侧重展示单类别型或连续型变量的分布情况:中级绘图一章,侧重展示双变量间关系(二元关系)和多变量间关系(多元关 ...
- R语言实战(第二版)-part 1笔记
说明: 1.本笔记对<R语言实战>一书有选择性的进行记录,仅用于个人的查漏补缺 2.将完全掌握的以及无实战需求的知识点略去 3.代码直接在Rsudio中运行学习 R语言实战(第二版) pa ...
- R 语言实战-Part 5-1笔记
R 语言实战(第二版) part 5-1 技能拓展 ----------第19章 使用ggplot2进行高级绘图------------------------- #R的四种图形系统: #①base: ...
- R入门<三>-R语言实战第4章基本数据管理摘要
入门书籍:R语言实战 进度:1-4章 摘要: 1)实用的包 forecast:用于做时间序列预测的,有auto.arima函数 RODBC:可以用来读取excel文件.但据说R对csv格式适应更加良好 ...
随机推荐
- STL:map中的lower_bound和upper_bound
今天在做leetcode的Longest Increasing Subsequence题目时,需要用到二分查找,于是翻看了<STL源码剖析>这本书,发现map里面有lower_bound和 ...
- perf4j @Profiled常用写法
以下内容大部分摘抄自网络上信息. 1.默认写法 @Profiled 日志语句形如: 2009-09-07 14:37:23,734 [main] INFO org.perf4j.TimingLogge ...
- window server 2012+apache+django
一.apache下载安装 https://www.apachelounge.com/download/VC10/ ***注意*** 本人用的是window server 2012 64位版本云服务器, ...
- OpenCV Laplace 算子
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #i ...
- Eclipse安装tomcat插件
安装插件:Pivotal tc Server Integration for Eclipse右击server可以定位到web项目部署的目录http://marketplace.eclipse.org/ ...
- 吴裕雄--天生自然HTML学习笔记:启动TOMCAT服务器时出现乱码解决方法
- 亚马逊Prime会员的杀价,能说明会员+会越来越便宜吗?
前段时间,京东又坑了!京东调整了物流方案--从原来的购物不满49元只需6元运费,调整到购物不满46元运费15元,运费猛涨了9元!原本京东PLUS会员每月有5张免运费券,但在运费涨价后运费券限制在6元, ...
- 【XP系统下载U盘装系统】用电脑店超级U盘装XP系统详细图文教程
现在U盘装系统已经越来越流行了,不仅方便而且简单,由于U盘启动盘用的制作工具不同,其中比较流行的有老毛桃.电脑店.大白菜.一键U盘装系统等等,因此安装过程中也有不尽相同的,今天就和大家分享下利用电脑店 ...
- 二十一世纪计算 | John Hopcroft:AI革命
编者按:信息革命的浪潮浩浩汤汤,越来越多的人将注意力转向人工智能,想探索它对人类生产生活所产生的可能影响.人工智能的下一步发展将主要来自深度学习,在这个领域中,更多令人兴奋的话题在等待我们探讨:神经网 ...
- [PyTorch入门之60分钟入门闪击战]之入门
深度学习60分钟入门 来源于这里. 本文目标: 在高层次上理解PyTorch的Tensor库和神经网络 训练一个小型的图形分类神经网络 本文示例运行在ipython中. 什么是PyTorch PyTo ...