• R语言多元素向量


    使用冒号运算带有数值数据(数值的增加为1)

    # Creating a sequence from 5 to 13.
    v <- 5:13
    print(v)
    
    # Creating a sequence from 6.6 to 12.6.
    v <- 6.6:12.6
    print(v)
    
    # If the final element specified does not belong to the sequence then it is discarded.
    v <- 3.8:11.4
    print(v)
    

    当我们上面的代码执行时,它产生以下结果:

    [1]  5  6  7  8  9 10 11 12 13
    [1]  6.6  7.6  8.6  9.6 10.6 11.6 12.6
    [1]  3.8  4.8  5.8  6.8  7.8  8.8  9.8 10.8
    

    使用序列 (Seq.) 运算符

    # Create vector with elements from 5 to 9 incrementing by 0.4.
    print(seq(5, 9, by=0.4))
    

    当我们上面的代码执行时,它产生以下结果:

     [1] 5.0 5.4 5.8 6.2 6.6 7.0 7.4 7.8 8.2 8.6 9.0

    charToRaw:把字符串转化为数字数组进行输出。

    使用 c() 函数

    非字符值强制转换为字符类型,如果该元素之一是字符。

    # The logical and numeric values are converted to characters.
    s <- c('apple','red',5,TRUE)
    print(s)
    

    当我们上面的代码执行时,它产生以下结果:

    [1] "apple" "red"   "5"     "TRUE" 

    访问向量元素

    一个向量的元素使用索引访问。[]括号是用来进行索引。索引位置始于1。 给出索引负值将从结果元素中丢弃。TRUE, FALSE 或 0 和 1。也可用于索引。

    # Accessing vector elements using position.
    t <- c("Sun","Mon","Tue","Wed","Thurs","Fri","Sat")
    u <- t[c(2,3,6)]//访问2,3,6位置的元素
    print(u)
    
    # Accessing vector elements using logical indexing.
    v <- t[c(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)]//凡是false的位置,结果不做输出
    print(v)
    
    # Accessing vector elements using negative indexing.
    x <- t[c(-2,-5)]//2和5索引位置数据由于是负数,表示不输出
    print(x)
    
    # Accessing vector elements using 0/1 indexing.
    y <- t[c(0,0,0,0,0,0,1)] //如果是数组相等的位置,0位置表示数值不做输出。
    print(y)
    

    当我们上面的代码执行时,它产生以下结果:

    [1] "Mon" "Tue" "Fri"
    [1] "Sun" "Fri"
    [1] "Sun" "Tue" "Wed" "Fri" "Sat"
    [1] "Sun"

    向量操作

    向量运算

    相同长度的两个矢量可以加,减,乘或除给出的结果为向量输出。

    # Create two vectors.
    v1 <- c(3,8,4,5,0,11)
    v2 <- c(4,11,0,8,1,2)
    
    # Vector addition.
    add.result <- v1+v2
    print(add.result)
    
    # Vector substraction.
    sub.result <- v1-v2
    print(sub.result)
    
    # Vector multiplication.
    multi.result <- v1*v2
    print(multi.result)
    
    # Vector division.
    divi.result <- v1/v2
    print(divi.result)
    

    当我们上面的代码执行时,它产生以下结果:

    [1]  7 19  4 13  1 13
    [1] -1 -3  4 -3 -1  9
    [1] 12 88  0 40  0 22
    [1] 0.7500000 0.7272727       Inf 0.6250000 0.0000000 5.5000000
    

    向量元素回收利用

    如果我们算术运算不等长的两个向量,那么短的向量的元素被循环以完成操作。

    v1 <- c(3,8,4,5,0,11)
    v2 <- c(4,11)
    # V2 becomes c(4,11,4,11,4,11)
    
    add.result <- v1+v2
    print(add.result)
    
    sub.result <- v1-v2
    print(sub.result)
    

    当我们上面的代码执行时,它产生以下结果:

    [1]  7 19  8 16  4 22
    [1] -1 -3  0 -6 -4  0
    

    向量元素排序

    一个向量中元素可以使用 sort()函数进行排序。

    v <- c(3,8,4,5,0,11, -9, 304)
    
    # Sort the elements of the vector.
    sort.result <- sort(v)
    print(sort.result)
    
    # Sort the elements in the reverse order.
    revsort.result <- sort(v, decreasing = TRUE)
    print(revsort.result)
    
    # Sorting character vectors.
    v <- c("Red","Blue","yellow","violet")//按照首字母进行排序
    sort.result <- sort(v)
    print(sort.result)
    
    # Sorting character vectors in reverse order.
    revsort.result <- sort(v, decreasing = TRUE)
    print(revsort.result)
    

    当我们上面的代码执行时,它产生以下结果:

    [1]  -9   0   3   4   5   8  11 304
    [1] 304  11   8   5   4   3   0  -9
    [1] "Blue"   "Red"    "violet" "yellow"
    [1] "yellow" "violet" "Red"    "Blue" 
  • 相关阅读:
    PyCharm2019激活
    实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示
    Python批量删除mysql中千万级大量数据
    SpringBoot + thymeleaf 实现分页
    适合用设计模式解决的问题场景
    重新理解面向过程和面向对象编程
    优化前端单页面应用性能指南
    使用ts开发vue项目知识点1
    职场人的核心竞争力应该是什么
    重新理解原型链
  • 原文地址:https://www.cnblogs.com/csguo/p/7294174.html
Copyright © 2020-2023  润新知