没有合适的资源?快使用搜索试试~ 我知道了~
首页R语言入门指南:从环境到操作详解
R语言入门指南:从环境到操作详解
5星 · 超过95%的资源 需积分: 12 48 下载量 25 浏览量
更新于2024-07-30
收藏 623KB PDF 举报
"R语言入门教程是一本专为R语言初学者设计的教材,旨在帮助读者理解和掌握R语言的基本概念和应用。该教程于2006年6月10日更新至版本1.7,由R Development Core Team编著,其内容涵盖了R语言的基础知识、环境设置、与统计分析的关系、与Windows系统的兼容性以及交互使用方法。 在绪论部分,作者介绍了R语言环境,包括相关软件和文档的安装与获取,以及R语言在统计分析中的重要角色,以及如何在Windows系统上有效地使用R。此外,还提供了入门训练,帮助读者熟悉R的基本操作和界面。 章节2着重于数值和向量操作,讲解了向量的创建、赋值、基本运算,以及如何生成规则的序列,如逻辑向量和处理缺失值。字符向量和索引向量(数据集子集的选择与修改)也是这一部分的重要内容。此外,还介绍了R中的其他数据类型。 章节3深入探讨对象的概念,包括模式、长度、属性获取和设置,以及对象类别的理解。通过实例,读者可以学习如何控制和操作这些元素。 第4章专门讲解有序因子和无序因子,解释了这两种特殊的数据类型及其在实际分析中的应用,以及相关函数的使用。 总体而言,这本教程结构清晰,适合R语言新手通过实践操作来逐步掌握R语言,无论是进行数据分析、绘图还是编写脚本,都能从中找到所需的基础知识和技巧。对于希望入门或提升R语言能力的学习者来说,这是一本非常实用的指南。"
资源详情
资源推荐
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
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
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
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页未读,继续阅读
丿咫尺天涯
- 粉丝: 107
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建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 等函数使用详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功