美文网首页绘图技巧生信
R: 向量(vector)元素操作总结

R: 向量(vector)元素操作总结

作者: 生信云笔记 | 来源:发表于2020-08-07 19:37 被阅读0次

      R语言中的向量可以说是经常使用到的数据数据类型,所以总结了一下向量的相关操作,包含创建、访问、插入和删除、修改值等。

    1、向量的创建

    这里介绍三种向量的创建方式:

    • 直接创建方式,示例代码如下:
    c1 <- 1:10
    
    • 使用向量函数c()创建,示例代码如下:
    c1 <- c(1,2,3,5)
    
    • 使用向量函数vector(),这种方式创建的向量元素的值都是初始值,示例代码如下:
    >c1 <- vector(mode='numeric',length=10)
    > c1
     [1] 0 0 0 0 0 0 0 0 0 0
    > c1 <- vector(mode='character',length=10)
    > c1
     [1] "" "" "" "" "" "" "" "" "" ""
    
    • 使用as.vector()函数可以从其他数据类型中转化过来,示例代码如下:
    #创建一个数据框
    > df <- data.frame(num=seq(1:5))
    > df
      num
    1   1
    2   2
    3   3
    4   4
    5   5
    #数据框转换为向量
    > c1 <- as.vector(df$num) #默认为数字向量
    >c1
    [1] 1 2 3 4 5 6 7
    > c1 <- as.vector(df$num,mode='character') #指定类型,只要不报错就可以生成指定类型的向量
    > c1
    [1] "1" "2" "3" "4" "5" "6" "7"
    

    2、向量元素的访问

    R的向量支持下标访问元素,不过注意的事,R中的下标是1base的,也就是第一元素下标为1,示例代码如下:

    c1 <- seq(1:5)
    > c1[2] #访问第二个元素
    2
    > names(c1) <- LETTERS[1:5] #如果元素有名字,也可以通过元素名访问
    > c1
    A B C D E
    1 2 3 4 5
    >c1['C']
    > c1['C']  #元素名要用引号包围
    C
    3
    > c1[3]
    C
    3
    

    3、向量元素的插入和删除

    向元素中追加新的元素,或者删除不想要的元素,示例代码如下:

    #添加元素
    c1 <- c(1,2,3,4,5) #创建一个向量
    c1 <- c(c1,5) #追加一个元素
    c1 <- c(c1,c(5,6)) #追加一个向量
    c1 <- c(c1[1:2],c(5,6),c[3:5]) #指定位置来添加的元素
    c1 <- append(c1,8) #在向量最后追加一个元素8
    c1 <- append(c1,c(11,22)) #在向量后追加向量
    c1 <- append(c1,35,3) #在第3个元素后插入新元素,也可以插入向量
    
    #删除元素
    c1 <- c1[-1] #从向量中指定位置为1的元素
    c1 <- c1[-c(2:3)] #可以给定一个位置向量来删除多个元素
    c1 <- c1[c(3:5)] #与上面的方式相反,保留想要的元素
    

    4、修改向量中元素的值

    修改元素的值,方式有修改单个元素、修改多个元素、按条件修改等几种情况,示例代码如下:

    c1 <- c(1,2,3,4,5) #创建一个向量
    c1[1] <- 11 #修改第一个元素的值为11
    c1[2:5] <- 11 #一次性修改多个元素的值修改为同一个值
    c1[2:5] <- c(21,22,23) #修改多个元素的值时,为每个元素指定一个值
    c1[c1 > 3] <- 11 #按条件修改元素的值,符合条件的元素都被重新赋值
    

    最后

      今天就分享到这里,R语言用来处理数据和画图还是很好用的,赶快用起来吧!

    相关文章

      网友评论

        本文标题:R: 向量(vector)元素操作总结

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