学习R记录 <- 基础3
向量、矩阵、数组
向量、矩阵、数组,都是在使用R中常用到的
1.1向量
使用c函数可以拼接数值和向量
c(1, 1:3, c(5, 8), 13)#不同值被拼接成单一向量[1] 1 1 2 3 5 8 13
除此之外用vector函数可以创立一个指定类型和长度的矢量。这个矢量的值可以是0,FALSE,空的字符串,等等。
> vector('numeric', 5)[1] 0 0 0 0 0> vector('complex', 5)[1] 0+0i 0+0i 0+0i 0+0i 0+0i> vector('logical', 5)[1] FALSE FALSE FALSE FALSE FALSE> vector('character', 5)[1] "" "" "" "" ""
需要注意的是“空值”并不是NA值,空值表示为NULL。
同样使用下面的命令与上面命令等价:
> numeric(5)[1] 0 0 0 0 0> complex(5)[1] 0+0i 0+0i 0+0i 0+0i 0+0i> logical(5)[1] FALSE FALSE FALSE FALSE FALSE> character(5)[1] "" "" "" "" ""
1.2序列
除了冒号来创立序列之外,还有几个更加简单快速的函数来创立序列。
1.2.1
seq.int函数可以创立一个序列。序列的范围有两个数指定,原理与冒号相同。
> seq.int(3,12) [1] 3 4 5 6 7 8 9 10 11 12
而seq.int函数比冒号方便的地方在于,它可以指定步长,
> seq.int(3,12, 2)[1] 3 5 7 9 11
1.2.2
seq_len函数
这个函数会创立一个从1开始到指定输入值的序列,尽管有时候不如直接用冒号方便但是当输入值为0时:
> 1:0[1] 1 0> seq_len(0)integer(0)
1.2.3
seq_along函数
此函数会创立一个从1开始,长度为输入值的序列
> pp <- c('peter', 'piper', 'picked', 'a', 'peck', 'of', 'pickled', 'peppers')> for (i in seq_along(pp)) {+ print(pp[i])}[1] "peter"[1] "piper"[1] "picked"[1] "a"[1] "peck"[1] "of"[1] "pickled"[1] "peppers"
1.2.4 长度
每一个向量都有长度,是一个非负整数(可以为零),可以通过length函数查询,NA也会被计入长度。
值得一提的是字符串长度,函数length得到的是字符串的数目,而每个字符串中字符的长度用函数nchar可以得到。
> sn <- c('a', 'dsad', 'dsajdsadsadas', 'fgigdfsa')> length(sn)[1] 4> nchar(sn)[1] 1 4 13 8
1.2.5 命名
R中的命名有点像python中的字典,即name=value来表示
> x <- c(apple = 1, banbana = 2, "kiwi fruit" = 3, 4)> x apple banbana kiwi fruit 1 2 3 4
当然也可以在创立向量之后对其赋值。
> x <- 1:4> names(x) <- c('apple', 'banana', "kiwi fruit")> x apple banana kiwi fruit <NA> 1 2 3 4
name函数可以用来取的向量的名称。
1.3矩阵与数组
1.3.1 创立矩阵和数组
使用array函数可以创立数组,它需要传入两个向量(维度和值)来作为参数。另外,可以为每个维度命名。
test <- array( 1:24, dim = c(4, 3, 2), dimnames = list( c('one', 'two', 'three', 'four'), c('ein', 'zwei', 'drei'), c('un', 'deux') ))> test, , un ein zwei dreione 1 5 9two 2 6 10three 3 7 11four 4 8 12, , deux ein zwei dreione 13 17 21two 14 18 22three 15 19 23four 16 20 24
创立矩阵相似于创立数组,其实矩阵就是一维的数组。
> test<- matrix(+ 1:24,+ nrow = 4, ncol = 3, + dimnames = list(+ c('one', 'two', 'three', 'four'), + c('ein', 'zwei', 'drei') + )+ )> test ein zwei dreione 1 5 9two 2 6 10three 3 7 11four 4 8 12
1.3.2行、列、维度
对于矩阵和数组,dim函数会返回其维度的整数值向量。
> dim(test)[1] 4 3 2> dim(test)[1] 4 3
1.3.3合并矩阵
使用cbind和rbind两个函数可以按行或者者按列来合并矩阵。
> test1 <- matrix(seq.int(2, 24, 2), nrow = 4)> test2 <- test> cbind(test1, test2) ein zwei dreione 2 10 18 1 5 9two 4 12 20 2 6 10three 6 14 22 3 7 11four 8 16 24 4 8 12> rbind(test1, test2) ein zwei drei 2 10 18 4 12 20 6 14 22 8 16 24one 1 5 9two 2 6 10three 3 7 11four 4 8 12
代码皆来自或者参考《学习R》
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 学习R记录 <- 基础3
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 学习R记录 <- 基础3