7向量
- 向量,vector是R中最重要的一个概念,它是构成其他数据结构的基础。R中的向量概念与数学中向量是不同的,类似于数学上的集合概念,由一个或多个元素构成。
向量中的元素可以是数值型,字符串型,逻辑型等,向量中的元素必须为同一类型元素,以便计算
- 向量其实是用于存储数值型,字符型或逻辑型数据的一维数组
- **用函数c来创建向量 **c代表concatenate连接,也可以理解为收集collect,或者合并combine
> x <- c(1,2,3,4,5) #建立向量(对象)X
> x #自动调用print函数来打印x(print函数可以省略)
[1] 1 2 3 4 5
> print(x)
[1] 1 2 3 4 5
> y <- c("one","two","three")
> y
[1] "one" "two" "three"
在R中字符串要加引号,搜索包的时候包的名字也一定要加引号不加引号就会把字符串当作对象,例如变量或者函数然后去整个软件中去搜索,搜索不到就会提示对象找不到
也就是说:加引号表示你是外部人,不加引号表示你是内部人
> z <- c(TRUE,T,F) #定义逻辑型变量z
> c(1:100) 构建1到100的等差数列
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13
[14] 14 15 16 17 18 19 20 21 22 23 24 25 26
[27] 27 28 29 30 31 32 33 34 35 36 37 38 39
[40] 40 41 42 43 44 45 46 47 48 49 50 51 52
[53] 53 54 55 56 57 58 59 60 61 62 63 64 65
[66] 66 67 68 69 70 71 72 73 74 75 76 77 78
[79] 79 80 81 82 83 84 85 86 87 88 89 90 91
[92] 92 93 94 95 96 97 98 99 100
> seq (from=1,to=100) #可以调整等差差值,使用seq函数生成序列
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13
[14] 14 15 16 17 18 19 20 21 22 23 24 25 26
[27] 27 28 29 30 31 32 33 34 35 36 37 38 39
[40] 40 41 42 43 44 45 46 47 48 49 50 51 52
[53] 53 54 55 56 57 58 59 60 61 62 63 64 65
[66] 66 67 68 69 70 71 72 73 74 75 76 77 78
[79] 79 80 81 82 83 84 85 86 87 88 89 90 91
[92] 92 93 94 95 96 97 98 99 100
> seq (from=1,to=100,by=2) #等差差值为2,使用seq函数生成序列
[1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35
[19] 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71
[37] 73 75 77 79 81 83 85 87 89 91 93 95 97 99
> seq (from=1,to=100,length.out=10) #控制输出元素的个数,这里输出10个,等差的值也相应的变大
[1] 1 12 23 34 45 56 67 78 89 100
> ?rep #查看rep函数的帮助信息(replicate)
> rep(2,5) #2(数值)重复5次
[1] 2 2 2 2 2
> rep(x,each=5) #x(向量)重复5次
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
> rep(x,each=5,times=2) #x(向量)重复5的2倍即10次
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 1 1
[28] 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
> a <- c(1,2,"one") #向量中的数据类型不能混合
> a
[1] "1" "2" "one" #这里直接把1,2 转换为字符串
> mode(a) #向量a的类型为字符型
[1] "character"
> mode(z) #向量a的类型为逻辑型
[1] "logical"
> a=2 #只有一个元素不用加c函数,也就是标量
> b=3
> c="Hello,World"
> d=TRUE
向量化编程有利于数据处理,最大的优势是避免使用循环
> x <- c(1,2,3,4,5)
> y <- c(6,7,8,9,10)
> x*2+y #这在perl或者python语言中只能循环来实现,但在R中一行代码就解决,这就是向量化编程的好处。
[1] 8 11 14 17 20
> x[x>3] #取出x中x>3的元素,不用使用循环
[1] 4 5
> rep(x,c(2,4,6,1,3)) #用rep函数对x向量每个元素重复的次数进行定义
[1] 1 1 2 2 2 2 3 3 3 3 3 3 4 5 5 5