a picture is worth a thousand words!
一,R语言简介
1,R语言的发展
上世纪90年代初,新西兰奥克兰大学 Ross Ihaka 和 Robert Gentleman 尝试构建了一个统计环境。
1997年以后,形成了一个核心团队对R 语言源代码进行管理与修改。
S语言:
1976年贝尔实验室发展起来的数据交互分析系统;是一种高级程序语言,很好地统计应用快速开发系统。
关于S语言更多信息见:
http://cm.bell-labs.com/cm/ms/departments/sia/S/history.html
Scheme语言:
Scheme 语言是计算机表面处理语言,该语言用于处理包含有表格的数据的编程语言,被广泛地运用于人工智能研究。
更多内容:
http://swiss.csail.mit.edu/projects/scheme/
简单的来说,
2,R语言软件与环境
本人所使用的是3.6.3版本,R语言版本发展较快,通常几个月就会发布新的版本。最新版本链接如下:
https://cran.r-project.org/src/base/R-4/
deprecated:由于R版本问题会出现函数弃用。
已经到了4.0.3,通常大版本号的更新会伴随着软件包的不稳定。
R语言3.6.3界面——远古,有年代感!!!
关于R studio:R studio是R的图形界面之一,可以让R语言代码更直观、明了地运行。RStudio同样是免费和开源的,可以在网站上自由下载与使用。
http://www.rstudio.com/ide/download/
R studio界面-看起来好多了
R studio的优点:
代码字体高亮,代码完整性智能识别、自动缩进;
可直接执行R 程序代码;
可运行多个R 程序;
可直接浏览工作表和数据;
可随意缩放绘制的图形,并且有多种输出格式;
整合R 帮助和R 使用文档;
可查看R 命令的运行记录。
3,关于R语言的几个重要概念
使用期 (Session): : R系统启动到结束之间的时间段
对 象 (Object): : 由R建立或处理的实体,包括变量、向量、矩阵、组合、函数等
历 史 史 (Histroy): : R 使 用 期 间 所 应 用 的 历 史 记 录(.Rhistroy)
工 作 空 间 (Workspace): : 当 前 被 存 储 对 象 的 集 合(.Rdata)。不但包括对象而且包含了对象的系统环境;当一次使用完毕要关闭R时,R会询问是否保存工作空间
软件包 (Package): : 执行一定功能的函数、数据等的集合,一些内置于R系统内,大部分外置于网络。
4,R语言的工作方式
命令行输入按回车键执行。
命令行由变量、运算符、赋值符号或函数组成
一行可以执行一个命令或多个命令,如果是多个命令,
命令之间以“;” 隔开。
命令行中空格不影响命令执行
R 退出命令为q()
#关于R语言的基本介绍就到这里了,具体的细节可查阅相关书籍。
二,R语言基本数据结构(按对象来划分)
1,向量(vector)
x <- c(1,2,3,4)
y=log(x)
plot(x,y)#图像如下
#截取
y[1]#结果0
y[1:3]#结果:0.0000000 0.6931472 1.0986123
y[-4]#表示不取第四个数字对应的y值。结果为:0.0000000 0.6931472 1.0986123
y[y>1]#也可以进行嵌套。结果:1.098612 1.386294
plot(x,y)
2,列表(list):列表可以用list函数创建,方法与创建数据框类似。它对其中包含的对象类型没有限制。
x <- 1:4; y <- 2:4
L1 <- list(x, y); L2 <- list(A=x, B=y)
L1; L2
####结果####
[[1]]
[1] 1 2 3 4
[[2]]
[1] 2 3 4
$A
[1] 1 2 3 4
$B
[1] 2 3 4
3,矩阵(matrix)
R 语言为线性代数的研究提供了矩阵类型,这种数据结构很类似于其它语言中的二维数组,但 R 提供了语言级的矩阵运算支持。
矩阵里的元素可以是数字、符号或数学式。语法格式如下:
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL)
data 向量,矩阵的数据
nrow 行数
ncol 列数
byrow 逻辑值,为 FALSE 按列排列,为 TRUE 按行排列
dimname 设置行和列的名称
合并向量或矩阵:
m1 <- matrix(1, nr = 2, nc = 2);m2 <- matrix(2, nr = 2, nc = 2);
rbind(m1, m2); cbind(m1, m2)
# [,1] [,2]
[1,] 1 1
[2,] 1 1
[3,] 2 2
[4,] 2 2
[,1] [,2] [,3] [,4]
[1,] 1 1 2 2
[2,] 1 1 2 2
矩阵乘积的运算:
rbind(m1, m2) %*% cbind(m1, m2)
# [,1] [,2] [,3] [,4]
[1,] 2 2 4 4
[2,] 2 2 4 4
[3,] 4 4 8 8
[4,] 4 4 8 8
矩阵的转置:
n1<- matrix(1:4, nr = 2, nc = 2); t(n1 )
# [,1] [,2]
[1,] 1 2
[2,] 3 4
提取或修正一个矩阵的对角元:
diag(n1); diag(n1) <- 10;
v <- c(10, 20, 30); diag(v)
# [,1] [,2] [,3]
[1,] 10 0 0
[2,] 0 20 0
[3,] 0 0 30
矩阵求逆:
solve(n1)
#> solve(n1)
[,1] [,2]
[1,] 0.1063830 -0.03191489
[2,] -0.0212766 0.10638298
4,数组(array)
语法格式:
array(data = NA, dim = length(data), dimnames = NULL)
#data 向量,数组元素。
dim 数组的维度,默认是一维数组。
dimnames 维度的名称,必须是个列表,默认情况下是不设置名称的。
实例:
# 创建两个不同长度的向量
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# 创建数组
result <- array(c(vector1,vector2),dim = c(3,3,2))
print(result)
#运行结果:可以看到一维和二维的结果
, , 1
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
, , 2
[,1] [,2] [,3]
[1,] 5 10 13
[2,] 9 11 14
[3,] 3 12 15
5,因子(factor)
一个因子不仅包括分类变量本身还包括变量不同的可能水平。
因子用于存储不同类别的数据类型,例如人的性别有男和女两个类别,年龄来分可以有未成年人和成年人。R 语言创建因子使用 factor() 函数,向量作为输入参数。
语法:
factor(x,levels=sort(unique(x),na.last=TRUE),labels=le
vels,exclude=NA,ordered=is.ordered(x))
#其中:levels 用来指定因子可能的水平(缺省值是向量x
中互异的值);labels用来指定水平的名字;exclude表
示从向量x中剔除的水平值;ordered是一个逻辑型选项
用来指定因子的水平是否有次
factor(1:3, levels=1:5)
factor(1:3, labels=c("A", "B", "C"))
#[1] A B C
Levels: A B C
6,数据框(data.frame)
数据框可以由函 数read.table 间接创建;也可以用函数data.frame创建。数据框中向量必须有相同的长度,若其中有一个比其它短,它将“循环”整数次
填充。
x <- 1:4; n <- 10; M <- c(10, 35)
data.frame(x, n); data.frame(x, M)
x n
1 1 10
2 2 10
3 3 10
4 4 10
x M
1 1 10
2 2 35
3 3 10
4 4 35
table = data.frame(
姓名 = c("张三", "李四"),
工号 = c("001","002"),
月薪 = c(1000, 2000)
)
print(table) # 查看 table 数据
#执行以上代码输出结果为:
姓名 工号 月薪
1 张三 001 1000
2 李四 002 2000
#R语言的数据类型主要有四种比较常用:numeric(数值型)、character(字符型)、date(日期型)、logical(逻辑型)。
进行数据分析时会进行相应的转换。
附R常用快捷键:
参考资料:https://www.runoob.com/r/r-data-types.html
脚本编辑窗口:
新建脚本:Ctrl+Shift+N
代码提示与补全:Tab
注释或取消注释:Ctrl+Shift+C
运行所选代码:Ctrl+Enter
运行全部代码:Ctrl+Shift+Enter
全选:Ctrl+A
选择:Shift+箭头
删除行:Ctrl+D
撤销:Ctrl+Z
重做:Ctrl+Shift+Z
赋值符:Alt+-
代码折叠:Alt+L
代码展开:Shift+Alt+L
保存本脚本:Ctrl+S
保存全部脚本:Ctrl+Alt+S
增加缩进:选中代码后,Tab(可包括多行)
减小缩进:选中代码后,Shift+Tab
智能缩进:选中代码后,Ctrl+I
智能缩进加智能空格:Ctrl+Shift+A(更高级的代码格式规范化工具,可参考formatR包)
选择与替换:Ctrl+F
提取函数:Ctrl+Alt+X(RStudio 可以分析某一代码段,并自动将其转换成一个可重复使用的函数。任何在选择的代码内的“自由的”变量,即那些被引用但没有被创建的变量,将被转化为函数的参数)
命令窗口中:
历史中的上一条命令:向上箭头
历史中的下一条命令:向下箭头
中断运行的代码:Esc
清除命令窗口中的内容:Ctrl+L
#建了微信群,欢迎学习R语言的加入,在这里我们可以讨论基本知识,绘图,地理数据处理与分析等...如若失效,可添加微信工宗号加入:egi0605