美文网首页
R语言向量元素的增删改查基本操作

R语言向量元素的增删改查基本操作

作者: 采星星的小太阳BavaLI | 来源:发表于2020-05-08 09:06 被阅读0次

    > v = c(1,2,3,4)
    > v
    [1] 1 2 3 4
    > class(v)
    [1] "numeric"
    > v[1]
    [1] 1
    > v[5]
    [1] NA
    > v[5]=5
    > v
    [1] 1 2 3 4 5
    > 
    

    R语言的索引是从1开始的

    当我们访问不存在的索引的时候,他不会报错,而是以NA代替,类似于python里面的None,大家注意比较一下!
    在这里,我直接为索引为5的元素赋值,然后打印,即可增加一个元素。

    插入多个元素

    类似于python的切片语法,但是注意,两端都是闭区间哦。

    > v[6:8]=c(6,7,8)
    > v
    [1] 1 2 3 4 5 6 7 8
    > cat(v)
    1 2 3 4 5 6 7 8
    >
    

    当前向量长度是8,可以在第10个位置进行赋值吗?
    让我们来试一下,他是可以的!

    > v[10]=10
    > v
     [1]  1  2  3  4  5  6  7  8 NA 10
    

    由于9的位置,我们没有赋值,所以NA填充。

    > v
     [1]  1  2  3  4  5  6  7  8 NA 10
    > v[-9]#与python不一样,‘-’代表删除
    [1]  1  2  3  4  5  6  7  8 10
    > v#返回的只是副本,所以在这里打印还是存在NA
     [1]  1  2  3  4  5  6  7  8 NA 10
    > v <- v[-9]#重新赋值
    > v#NA被删除成功
    [1]  1  2  3  4  5  6  7  8 10
    > 
    

    多个删除

    > v
    [1]  1  2  3  4  5  6  7  8 10
    > v[-1:-3]#与v[-3:-1]一样的结果,只是删除的顺序不一样
    [1]  4  5  6  7  8 10
    > v
    [1]  1  2  3  4  5  6  7  8 10
    > v[-3:-1]
    [1]  4  5  6  7  8 10
    > 
    

    > v
    [1]  1  2  3  4  5  6  7  8 10
    > v= v+1#支持加减乘除矢量化运算
    #传统for(1-5) v[i] = c[i] 迭代计算
                #矢量化运算效率 > 迭代计算
    > v
    [1]  2  3  4  5  6  7  8  9 11
    > v[1] = 11#修改一个元素
    > v
    [1] 11  3  4  5  6  7  8  9 11
    > v[2:3] <- c(22,33)#修改多个元素
    > v
    [1] 11 22 33  5  6  7  8  9 11
    >
    

    > v
    [1] 11 22 33  5  6  7  8  9 11
    > v[1]#获取一个
    [1] 11
    > v[1:3]#多个
    [1] 11 22 33
    

    下面这个函数很神奇

    > v
    [1] 11 22 33  5  6  7  8  9 11
          T   F   T   F  T  F T  F T
    > v[c(T,F)]#逻辑型索引,循环索引
    [1] 11 33  6  8 11
    > 
    

    向量起名字

    > vtest =c(a=1,b=2,c=3,d=4)#创建向量并赋名字
    > vtest
    a b c d 
    1 2 3 4 
    > vtest[1:2]#依然支持索引切片
    a b 
    1 2 
    > vtest['a']
    a 
    1 
    > vtest['a':'b']#不支持名字切片
    Error in "a":"b" : NA/NaN argument
    In addition: Warning messages:
    1: NAs introduced by coercion 
    2: NAs introduced by coercion 
    > 
    
    > v1 <- c(1,2,3,4)
    > v2 <- c(1,2,3,4)
    > v1
    [1] 1 2 3 4
    > v2
    [1] 1 2 3 4
    > v1+v2
    [1] 2 4 6 8
    > v1/v2
    [1] 1 1 1 1
    > v1*v2
    [1]  1  4  9 16
    > v1-v2
    [1] 0 0 0 0
    > 
    #向量的矢量化操作 
    

    常用的小操作

            #排序
            v = c(1,3,2,4,-1,0,1,3,2,4)
            # ?sort 查看帮助文档
            sort(v)
            # tab
            sort(v,decreasing = T)
    
            v = c('b','c','a')
            sort(v)
            sort(v,decreasing = T)
            
            #查看数据类型
            v = 1:5
            is.character(v)
            is.numeric(v)
    

    特殊值的说明

          R语言 : 
          NA 缺失值 【*】
          NAN 无意义数
          InF 正无穷 
          -InF 负无穷 
          NULL 没有赋值
          
          v = c(NA,NULL,sqrt(-1),1/0,-1/0)
    

    好啦,就分享到这里吧,其他的大家再去查阅。如果有用,点个赞哟,这是我继续写文的动力!!谢谢

    相关文章

      网友评论

          本文标题:R语言向量元素的增删改查基本操作

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