本文内容来自《R 语言编程艺术》(The Art of R Programming),有部分修改
运行R
交互模式
使用命令行运行 R.exe
(linux 中运行 R
)
本文示例均在 Jupyter Lab 中运行 R 环境
注:在 Jupyter Notebook 中,只有使用
下面代码为了展示输出结果均为向量,均使用
print(mean(abs(rnorm(100))))
[1] 0.7482577
print(rnorm(10))
[1] 0.03721293 -0.20435474 -0.19896266 -0.81638471 2.38975757 -0.13099913
[7] -1.69019026 1.04377265 0.83753176 -1.41777840
批处理模式
pdf("xh.pdf")
hist(rnorm(100))
dev.off()
R.exe CMD BATCH z.R
R 会话
注:从本节开始,代码中省略 print 函数调用,与命令行交互模式保持一致
向量
R 语言中最基本的数据类型是向量
是 R 语言的标准赋值运算符
使用 c
创建向量,c
表示连接 (concatenate)
x c(1, 2, 4)
x
[1] 1 2 4
c
中也可以使用向量,注意这种方式是将向量展开,而不是生成嵌套的向量
q c(x, x, 8)
q
[1] 1 2 4 1 2 4 8
注:对比 Python 列表的 append
和 expend
方法
访问向量中的元素
注意:R 语言中的索引从 1 开始!
与 C 语言和 Python 不同
x[3]
[1] 4
提取子集
注意:R 语言中的范围包含最后一个元素,即使用闭区间
[a, b]
!而 Python 中不包含最后一个元素,即使用左闭右开区间
[a, b)
x[2:3]
[1] 2 4
求统计值
求均值和标准差
mean(x)
[1] 2.333333
sd(x)
[1] 1.527525
将统计值赋值给变量
R 语言中的注释也以 #
开头
y mean(x)
y # print out y
[1] 2.333333
内置数据集
使用 data()
函数返回内置的数据集
data()
![01624e5a572f29c9b80fd2a42c795201.png](https://img-blog.csdnimg.cn/img_convert/01624e5a572f29c9b80fd2a42c795201.png)
以尼罗河水流量数据集 Nile 为例,计算统计值
mean(Nile)
[1] 919.35
sd(Nile)
[1] 169.2275
画直方图
hist(Nile)
![8ceca51a08b196d60aad8dc432909203.png](https://img-blog.csdnimg.cn/img_convert/8ceca51a08b196d60aad8dc432909203.png)
hist 提供各类参数来控制图形
例如,使用 breaks
函数指定分组数
hist(Nile, breaks=5)
![fa5902230dfff981358f79f4b75aaa6f.png](https://img-blog.csdnimg.cn/img_convert/fa5902230dfff981358f79f4b75aaa6f.png)
调用 q()
函数可以退出 R 命令行交互模式。
函数入门
与 Python 类似,函数同样是 R 语言编程的核心
下面的函数统计向量中奇数的个数
其中 %%
是求余操作符(Python 中是 %
)
oddcount function(x) {
k 0for (n in x) {
if (n %% 2 == 1