没有合适的资源?快使用搜索试试~ 我知道了~
首页R语言入门:1.7版教程解析与基本操作
R语言入门教程(1.7版)是一本旨在引导读者理解和掌握R编程语言的实用指南。R作为一门动态的编程环境,尤其适合于交互式数据分析,特别适用于研究和开发领域。然而,由于R的不断更新迭代,新版本可能与旧版本存在不兼容性,这意味着用户需要时刻关注并适应新功能和变化。 该教程的第1章主要介绍了R语言的基本环境,包括R语言环境的建立、相关软件的安装和文档的查阅。R与统计学的紧密联系以及它在Windows系统上的使用也被详细阐述,强调了R的交互式特性,如用户可以通过交互式界面探索数据和运行命令。 接下来,章节重点讲解了R的入门操作,如向量的使用、赋值、基本运算,以及如何创建规则序列、处理逻辑向量和缺失值。字符向量的处理以及如何通过索引选择和修改数据集子集也在此部分介绍。此外,对象的类型、模式、长度和属性管理是后续章节的核心内容,包括固有属性的查看、对象长度的调整、属性获取和设置,以及对象类别的识别。 第4章专门探讨了有序和无序因素(因子),这是R中用于编码分类变量的重要工具。通过实例,读者可以学习如何处理这些特殊的对象类型,并理解它们在数据分析中的应用。 值得注意的是,每个章节都强调了R的动态特性,提醒读者尽管R试图提供一个强大的编程环境,但随着版本更新,代码的持久性并不能得到保证,因此开发者需要具备持续学习和适应新版本的能力。 总体而言,这本教程为初学者提供了R语言的基础知识,旨在帮助他们快速上手并理解如何在这个强大且不断发展的环境中进行高效的数据分析和编程。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/12887460/bgc.jpg)
CHAPTER 2.
简单操作;数值与向量
8
使变量labs成为字符变量
c("X1", "Y2", "X3", "Y4", "X5", "Y6", "X7", "Y8", "X9", "Y10")
请注意参数中比较短的字符串也要被被循环使用,因此|c("X","Y")|被重
复了5次来匹配数列1:10 。
2.7 索索索引引引向向向量量量(index vector);数数数据据据集集集子子子集集集的的的选选选择择择与与与
修修修改改改
选择一个向量中元素的子集可以通过在其名称后追加一个方括号中的索引向量
来完成。更一般的,任何结果为一个向量的表达式都可以通过追加索引向量来
选择其中的子集。这样的索引向量有四种不同的类型。
1. 逻辑的向量。在这种情况下索引向量必须与从中选取元素的向量具有相
同的长度。在索引向量中返回值是TRUE 的元素所对应的元素将被选出,
返回值为FALSE的值所对应的元素将被忽略。例如
> y <- x[!is.na(x)]
创建了一个名为y的对象,对象中包含x中的非缺失值,同时保持顺序。
请注意如果x中包含缺失值,y的长度将小于x。
> (x+1)[(!is.na(x)) & x>0] -> z
上面的命令创建一个对象z,其中的元素由向量x+1中与x中的非缺失值和
正数对应的向量组成。
2. 正整数的向量。这种情况下索引向量中的值必须在集合{1, 2, ...,length(x)}中。
在返回的向量中包含索引向量中指定元素,并且在结果中按照索引向量
中的顺序排列。索引向量的长度可以是任意的,返回的向量与索引向量
由相同的长度。例如x[6] 是x的第六个元素,而
> x[1:10]
选取了x的前10个元素(假设x的长度不小于10)。而
> c("x","y")[rep(c(1,2,2,1), times=4)]
产生了一个字符向量,长度为16,由 "x", "y", "y", "x" 重复4次而组
成。
3. 负整数的向量。这种索引向量的作用是把某些值派出而不是包括进来。
因此
> y <- x[-(1:5)]
向量y取得了前5个元素以外的值。
4. 字符串的向量。这种可能型只存在于拥有names属性并由它来区分向量中
元素的向量。这种情况下一个由名称组成的子向量起到了和正整数的索
引向量相同的效果。
> fruit <- c(5, 10, 1, 20)
> names(fruit) <- c("orange", "banana", "apple", "peach")
> lunch <- fruit[c("apple","orange")]|
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
![](https://csdnimg.cn/release/download_crawler_static/12887460/bgd.jpg)
CHAPTER 2.
简单操作;数值与向量
9
由字母和数字组成的
名称
(names)比单纯的
数值索引
更好记是它最大的优
点。这个功能在使用数据框的时候非常有用,我们在后面会看到。一个被索引
的表达式。这个表达式应当有vector[index_vector]这样的形式,因为如果
在vector的位置随便放上一个表达式并没有什么意义。
> x[is.na(x)] <- 0
replaces any missing values in x by zeros and
> y[y < 0] <- -y[y < 0]
has the same effect as
> y <- abs(y)
2.8 对对对象象象的的的其其其他他他类类类型型型
向量是R中最重要的对象类型,不过在后面的章节我们还会遇到其他的几种。
•
矩阵
(matrices) 或者更一般的说
数组
是向量在多维情况下的一般形式。
事实上它们是可以被两个或更多的指标索引的向量,并且以特定的方式
被打印出来。参见数组和矩阵
•
因子
(factors) 提供了一种处理分类数据的更简介的方式。参见因子
•
列表
(lists) 是向量的一种一般形式,并不需要保证其中的元素都是相同的
类型,而且其中的元素经常是向量和列表本身。列表为统计计算所返回
的结果提供了一种便捷的方式。
•
数据框
(data frames)是一种与矩阵相似的结构,其中的列可以是不同的
数据类型。可以把数据框看作一种数据”矩阵”,它的每行是一个观测单
位,而且(可能)同时包含数值型和分类的变量。很多试验可以通过数据况
进行描述:处理是分类的和应答是数值的。参见数据框
•
函数
(functions)是能够在R的workspace中存储的对象。我们可以通过函
数来扩展R的功能。参见编写自己的函数。
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
![](https://csdnimg.cn/release/download_crawler_static/12887460/bge.jpg)
Chapter 3
对对对象象象,,,模模模式式式和和和属属属性性性
3.1 固固固有有有属属属性性性:::模模模式式式和和和长长长度度度
R所进行操作的实体是对象。比如由实数或复数、逻辑值、字符串组成的向
量。由于它们的成分都是同一类型或者模式,所以它们可以被看作最基本的结
构,分别称为数值(实值)型(numeric),复值型(complex),逻辑型(logical)以及
字符型(character)。
向量中的值必须是相同模式的。因此任何给定的向量必定是逻辑型、数
值型、复值型或字符型中的一种。唯一一个不那么重要特例就是对无效量
的NA值。请注意即使一个空向量仍然有它的模式。比如一个空的字符串向量
打印为character(0),一个空的数值向量打印为numeric(0)。
R的操作对象还包括列表,它的模式是列表型(list)。列表是对象的有序序
列,其中的元素可以是任意模式的。与最基本的结构不同的是,列表是一种”递
归”的结构,也就是说它们中的元素也可以是列表。
递归结构还包括其他的模式――
函数
(function)和
表达式
(expression)。函数
和表达式都是R系统的重要的组成部分,在后面的部分我们会深入的讨论函
数,而表达式我们只是会在公式建模部分间接的讨论到。
通过模式我们可以确定对象的基本类型。模式是对象的一种特性。对象的另
一种特性是它的长度。函数mode(object)和length(object)可以返回对象的模式
和长度。
更深入的属性可以通过attributes(object)获得,参见取得和设置属性。因
此,模式和长度也被称为对象的”固有属性”。
例如,令z是一个长度为100的复值向量,在表达式中mode(z)的值为”complex”,length(z)的
值为100。
在允许的情况下(大多数情况都是允许的),R可以完成各种模式的转换。例
如
> z <- 0:9
我们可以通过命令
> digits <- as.character(z)
将z 转化为字符向量c("0", "1", "2", ..., "9") 后赋值给digits。我们
还可以进一步的强制转化(coercion),或称转化模式,将digits转化为数值向
量:
> d <- as.integer(digits)
此时d和z是相同的。在R中存在很多类似的,形式为as.something()的函
数,可以完成从一个模式向另一个模式的转化,或者是令对象取得它当前模式
10
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
![](https://csdnimg.cn/release/download_crawler_static/12887460/bgf.jpg)
CHAPTER 3.
对象,模式和属性
11
不具有的某些属性。通过帮助文档,用户应当会对他们更加熟悉。
3.2 改改改变变变对对对象象象的的的长长长度度度
一个”空”对象具有模式。例如
> e <- numeric()
产生一个模式为数值型的空向量。同样的,character()是一个字符式的空
向量等等。当一个对象被创建之后,不论对象的长度是多少,新添加的元素都
将被赋予一个索引值,这个索引值将在原有索引值范围之外。因此
> e[3] <- 17
另e为一个长度为3的向量(此时,该向量的前两个元素都是NA)。这个规
则对任何结构都是有效的,新增元素的模式与对象中第一个位置的元素相同。
这种对对象长度的自动调整是经常被使用的。例如使用scan()进行输入
时。(参见)
相反的,如果要缩短(截断)一个对象的长度,只需要一个赋值命令。因
此,若alpha是一个长度为10的对象,下面的命令
> alpha <- alpha[2 * 1:5]
使之成为一个长度为5,仅包含前五个索引值为偶数的元素的对象。变换后
原有的索引值不被保留。
3.3 属属属性性性的的的获获获取取取和和和设设设置置置
函数attributes(object)将给出当前对象所具有的所有非基本属性(长度和模
式属于基本属性)的一个列表。函数attr(object,name)可以被用来选取一个
指定的属性。除了为某些特殊的目的创建新属性这样特殊的环境下,这些函数
很少被用到,比如将一个R对象与创建日期或一个操作符相关联时。不过,这
种概念是相当重要的。
在赋予或删除属性的时候需要慎重的作些检查。因为属性是R的对象系统不
可分割的一部分。
当函数attr()用在赋值语句左侧时,既可以是将对象与一种新的属性关
联,也可以是对原有属性的更改。例如
> attr(z,"dim") <- c(10,10)
另R将z作为一个10 × 10的矩阵看待。
3.4 对对对象象象的的的类类类别别别
对象的一个特别属性,
类别
,被用来指定对象在R编程中的风格。
例如,如果一个对象的类别是"data.frame",它将按照一种特定的方式被
打印出来,函数plot()在绘图时也会按照特定的方式来进行,其他被称作通用
函数的函数,例如summary()在处理时也会对它的类别作出特定的反应。
如果要临时去除类别的作用,可以使用函数unclass()。例如,如果winter的
类别为"data.frame",那么
> winter
将按照数据帧的形式来打印它,和矩阵的形式差不多,而
> unclass(winter)
将把它按照一个普通的列表来打印。这个功能你只会在一些相当特殊的情况
下才会用到,其中一个便是当你要学习类别和通用函数的概念时。
在sec10.9我们还会再讨论通用函数和类别,不过只是简要的。
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
剩余71页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/b5b974d6a43d49e9baedf0670a9c4945_leidazhi.jpg!1)
leidazhi
- 粉丝: 0
- 资源: 21
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)