美文网首页程序员
学习R记录 <- 基础3

学习R记录 <- 基础3

作者: limbo1996 | 来源:发表于2019-03-16 22:25 被阅读0次

向量、矩阵、数组

向量、矩阵、数组,都是在使用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 drei
one     1    5    9
two     2    6   10
three   3    7   11
four    4    8   12

, , deux

      ein zwei drei
one    13   17   21
two    14   18   22
three  15   19   23
four   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 drei
one     1    5    9
two     2    6   10
three   3    7   11
four    4    8   12

1.3.2行、列、维度

对于矩阵和数组,dim函数会返回其维度的整数值向量。

> dim(test)
[1] 4 3 2
> dim(test)
[1] 4 3

1.3.3合并矩阵

使用cbindrbind两个函数可以按或者按来合并矩阵。

> test1 <- matrix(seq.int(2, 24, 2), nrow = 4)
> test2 <- test
> cbind(test1, test2)
              ein zwei drei
one   2 10 18   1    5    9
two   4 12 20   2    6   10
three 6 14 22   3    7   11
four  8 16 24   4    8   12
> rbind(test1, test2)
      ein zwei drei
        2   10   18
        4   12   20
        6   14   22
        8   16   24
one     1    5    9
two     2    6   10
three   3    7   11
four    4    8   12

代码皆来自或参考《学习R》

相关文章

  • 学习R记录 <- 基础3

    向量、矩阵、数组 向量、矩阵、数组,都是在使用R中常用到的 1.1向量 使用c函数可以拼接数值和向量 除此之外用v...

  • R语言-0基础学习4-实战1-常见操作

    R语言学习系列R语言-0基础学习1-数据结构R语言-0基础学习2-构建子集R语言-0基础学习3-循环排序信息处理函...

  • 学习R记录 <- 基础1

    今天一晚上学了markdown的语法顺便记录自己学R的东西 为什么学R语言 R是一种用于数据统计分析的编程语言,有...

  • 学习R记录 <- 基础2

    在我写这篇的时候,是3月8日,祝各位女生节日快乐。而且今天也是漫威新电影《惊奇队长》上映的日子啊!!!!!好了,学...

  • R语言基础学习3

    函数和R包 1 函数与参数 (1)形式参数与实际参数 (2) 写函数-这个需要下一步学习三要素:函数名称,形式参数...

  • R语言基础--数据类型-总结

    R语言基础--数据类型-总结 1、R语言基础--数据类型之向量 2、R语言基础--数据类型之因子 3、R语言基础-...

  • 学习小组Day4笔记--行

    正式开始学习R语言了,今天笔记内容为R语言基础和ggplot2的入门学习 R语言基础 1、认识R与RStudio ...

  • 学习小组Day4笔记——冬梅

    生信星球学习笔记-Day3 今天入门R安装R→基础操作下面这张图片是R studio界面的介绍,图片引用自微信公众...

  • 《学习小组Day6笔记-Cristal》

    生信星球-学习小组-第六天-学习R包 安装和加载R包(1)镜像(2)安装(3)加载 dplyr五个基础函数(1)m...

  • 学习小组Day4 R语言基础--yu

    R语言基础 各种学习链接 R安装教程 R安装 https://mirrors.tuna.tsinghua.edu....

网友评论

    本文标题:学习R记录 <- 基础3

    本文链接:https://www.haomeiwen.com/subject/prshmqtx.html