R语言笔记-向量操作
来源:互联网 发布:it技术论坛有哪些 编辑:程序博客网 时间:2024/05/27 09:47
1. 向量构成的基本元素为:数值(numeric)、字符(character)、逻辑值(logical)、复数型(complex)
2. 向量不需要定义类型,可直接赋值:
a<-c(1,2,3,4,5,-3,-4);a #数值型向量
[1] 1 2 3 4 5 -3 -4
b<-c("one","two","three");b #字符型向量
[1] "one" "two" "three"
c<-c(TRUE,TRUE,TRUE,FALSE);c #逻辑型向量
[1] TRUE TRUE TRUE FALSE
x<-c(5,4,2);x
[1] 5 4 2
x[9]<-9;x # 当向量x不够长时,指定第9个元素为9
[1] 5 4 2 NA NA NA NA NA 9 #自动将中间的元素补为NA
3. 向量的元素下标取值是以1开始,例如:要前例中取x向量中值为1,则为x[2]
如果一个向量中有一个字符,则该向量的类型会变成字符;
demo_1<-c(1,2,'a')
mode(demo_1)
[1] "character"
4. 给向量加名字:
names(years)<-c("Kennedy", "Johnson", "Carter","Clinton");years
Kennedy Johnson
1960
5. 向量元素的添加及合并
v<-c(1,2,3)
v<-c(v,55) #格式为新向量<-(原向量,新元素)
v
[1] 1 2 3 55
v1 <- c(1, 2, 3)
v2 <- c(4, 5, 6)
c(v1,v2)
[1] 1 2 3 4 5 6
>v<-c(1,2,3,3,3,4)
> append(v,10,after=3) #在第3个向量后面加入10
[1] 1 2 3 10 3 3 4
6. 如果逻辑变量与数值在一起,则为转换成数值。TRUE转变成1 and FALSE 转变成 0.
demo_2<-c(1,2,TRUE)
mode(demo_2)[1] "numeric"
demo_2[1] 1 2 1
在R语言中没有单一的整数、单一字符的概念
例如:X<-2;X<-'a';R都是当作向量来处理,只是这个向量只包括单一值。
7. 几种特殊向量的生成
7.1 生成系列seq()
seq(length=, from=, to=)
length:指定生成个数
from:是指开始生成的点
to:截止点
如果不指定,则默认条件下:seq(N1,N2,BY=)
n1:开始位置
n2:截止位置
by=指定间隔
seq(length=10,from=10,to=100)
[1]
seq(10,100,10)
[1]
7.2 rep(P,N) 重复生成P值N次
rep(1,10) [1] 1 1 1 1 1 1 1 1 1 1
8. 向量运算
取子向量:通过下标实现
取某个元素:x[2];(如果X包括名称,注意:x[2]与x[[2]]的区别;
取某中几个:x[c(1,2,0)]
取某个/几个元素,利用-:x[-n]
9. 向量排序
sort(); 输出排序后的结果;
order();输出排序后的各个向量位置;
a<-c(3,9,0,12,19)
sort(a);order(a);
a<-c(3,9,0,12,19)
order(a)[1] 3 1 2 4 5
sort(a)[1]
10. 相加。如果二个向量进行运算过程中,二个向量不相同,则R对长度小的向量自动补充值,直到长度等于大的向量。
例如:
Demo_5<-1:3;
Demo_6<-2:5;
Demo_7= Demo_6+ Demo_5;
Warning message:
In Demo_6 + Demo_5 :
longer object length is not a multiple of shorter object length
Demo_5<-1:3;
Demo_6<-2:7;
Demo_7= Demo_6+ Demo_5;
Demo_7[1]
11. 按条件提取向量的元素
x<-c(10:1);x
[1] 10
x[x==3]<-25;x #将x中等于3的元素变为25
[1] 10
x[x=1]<-12;x #将x的第1个元素数值变为12
[1] 12
> letters[1:30] # 产生字母序列
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s""t" "u" "v" "w" "x" "y" "z" NA
[28] NA
> a <- c(2,3,4,2,5,1,6,3,2,5,8,5,7,3);a
[1] 2 3 4 2 5 1 6 3 2 5 8 5 7 3
> which.max(a) # 找出最大元素的下标
[1] 11
> which.min(a) # 找出大小的元素下标
[1] 6
> a[which.max(a)] # 找出最大的元素
[1] 8
> which(a==2) # 等于2的元素的下标
[1] 1 4 9
> a[which(a==2)] # 等于2的元素
[1] 2 2 2
> which(a>5) # 大于5的元素的下标
[1]
> a[which(a>5)] # 大于5的元素
[1] 6 8 7
12. 向量的比较
x<-c(1,2,3);y<-c(1,2,3);z<-c(1,2,4);x;y;z
[1] 1 2 3
[1] 1 2 3
[1] 1 2 4
x==y;x==z;y==z #分别比较x,y,z的各个元素
[1] TRUE TRUE TRUE
[1]
[1]
identical(x,y);identical(x,z);identical(z,y) #比较x,y,z的整体
[1] TRUE
[1] FALSE
[1] FALSE
all.equal(x,y) #比较数值型变量是否“近似相等”
[1] TRUE
all.equal(x,z)
[1] "Mean relative difference: 0.3333333"
all.equal(y,z)
[1] "Mean relative difference: 0.3333333"
文章转载自:http://blog.sina.com.cn/s/blog_5de124240101pj1l.html
- R语言笔记-向量操作
- R语言学习笔记,(1)基础及向量操作
- 《R语言编程艺术》笔记2--向量
- R语言基础-向量
- R语言基础:向量
- R语言字母向量
- R 语言向量详解
- R语言 向量
- (R语言)简单操作,数值与向量
- R语言基本知识梳理(1)-基本管理及向量操作
- R语言入门——向量操作和赋值
- R语言编程艺术学习笔记(快速入门、向量)
- R语言笔记(二):数据结构之向量
- R语言向量_向量符号化
- R语言向量_测试向量相等
- R语言:向量与赋值
- R语言向量_筛选
- R向量赋值和操作
- 【floyd】HDU 1874 畅通工程续
- Android开发之Bundle与Intent详解
- Vbox创建COM对象失败
- struts2文件上传后找不到文件 与 文件下载的问题
- mysql jdbc学习笔记
- R语言笔记-向量操作
- Win7 64位系统下VS2010配置OpenCV2.4.4
- 【leetcode】Binary Tree Postorder Traversal
- 链表的倒数第K个结点(一次遍历)
- C#命名规范
- 关于 ora-01187 和ora-01110问题解决
- APUE:线程:读写锁rwlock
- 使用RDLC报表
- [Leetcode] Pascal's Triangle I | II