美文网首页
R语言-3-数据结构_向量

R语言-3-数据结构_向量

作者: oo番茄oo | 来源:发表于2020-04-16 00:19 被阅读0次

    一、向量

    1、向量生成

    (1)用c()逐一放到一起
    (2)连续的数字用冒号“:”,注意不用加c

    (3)有重复的用rep(),有规律的序列用seq(),随机数用rnom

    (4) 通过组合,产生更为复杂的向量

    2、对单个向量操作

    (1)赋值给一个变量名
    向量是由元素构成的
    (2)简单数学计算
    (3)根据某条件进行判断,生成逻辑值向量 ==
    (4)初级统计

    > x <- c(1,3,5,2)
    > max(x)
    [1] 5
    > min(x)
    [1] 1
    > x <- c(1,3,5,2)
    > max(x)
    [1] 5
    > min(x)
    [1] 1
    > mean(x)
    [1] 2.75
    > median(x)
    [1] 2.5
    > var(x)#方差
    [1] 2.916667
    > sd(x)#标准差
    [1] 1.707825
    > sum(x)#总和
    [1] 11
    > length(x)#向量的长度,即向量中元素的个数
    [1] 4
    > unique(x)#去重复,只保留第一次出现的
    [1] 1 3 5 2
    > duplicated(x)#是否重复出现过,输出是逻辑值
    [1] FALSE FALSE FALSE FALSE
    > !duplicated(x)#输出反结果
    [1] TRUE TRUE TRUE TRUE
    > table(x)#重复值统计
    x
    1 2 3 5 
    1 1 1 1 
    > sort(x)#从小到大排序
    [1] 1 2 3 5
    

    3、对两个向量操作

    (1)逻辑值比较,生成等长的逻辑向量

    > x=c(1,3,5,1)
    > y=c(3,2,5,6)
    > x==y
    [1] FALSE FALSE  TRUE FALSE
    > #2.3
    > x=c(1,3,5,1)
    > y=c(3,2,5,6)
    > x==y #对应位置比较
    [1] FALSE FALSE  TRUE FALSE
    > x %in% y #x的元素是否在y中
    [1] FALSE  TRUE  TRUE FALSE
    

    (2)数学计算

    > x+y
    [1]  4  5 10  7
    

    (3)连接

    > paste(x,y,sep = ":")#xy一对一连接,连接符号是:
    [1] "1:3" "3:2" "5:5" "1:6"
    

    (4)交集、并集、差集

    > intersect(x,y)#交集
    [1] 3 5
    > union(x,y)#并集,自动进行去重复
    [1] 1 3 5 2 6
    > setdiff(x,y)#差集,x有y无
    [1] 1
    > setdiff(y,x)#差集,y有x无
    [1] 2 6
    

    (5)当向量长度不一致时用到“循环补齐”,短的补长的,可以简化代码,可以不用for循环

    > paste0(rep("gene",3),1:3)
    [1] "gene1" "gene2" "gene3"
    > paste0("gene",1:3)
    [1] "gene1" "gene2" "gene3"
    

    4、向量筛选[ ]

    (1)根据逻辑值 将TRUE对应的值挑选出来,FALSE丢弃,要求逻辑值的长度和被取值向量的长度相同
    (2)根据位置 x[c(2,5)],x[2:4],[ ]中数字代表元素下标

    5、修改元素

    取子集+赋值

    6、向量排序

     x <- c("A","B","C","D","E")
     y <- c("B","D","E","A","C")
    

    (1)sort 从小到大

    > sort(y)
    [1] "A" "B" "C" "D" "E"
    

    (2)rev 倒序写出

    rev(x)
    [1] "E" "D" "C" "B" "A"
    rev(y)#倒序排列
    [1] "C" "A" "E" "D" "B"
    

    (3)order

    > order(x)
    [1] 1 2 3 4 5
    > order(y) 返回位置是排序的
    [1] 4 1 5 2 3
    

    解释:第一小值在y的第四位A,第二小值在y的第一位D,第三小值在y的第五位C,第四小值在y的第二位D,第五小值在y的第三位E
    (4)rank

    > rank(x) 在组内排序再返回
    [1] 1 2 3 4 5
    > rank(y)
    [1] 2 4 5 1 3
    

    对y解释,y的第一个值B是整组排序第二位,第二个值D是整组排序第四位,第三个值E是整组排序第五位
    (5)match

    > #若想根据x的顺序排y
    > match(x,y)
    [1] 4 1 5 2 3#输出的是x顺序的y的下标
    > y[match(x,y)]
    [1] "A" "B" "C" "D" "E"#安装x的顺序排列y
    

    解释:y的第四位是x的第一位,y的第一位是x的第二位,y的第五位是x的第三位,y的第二位是x的第四位,y的第三位是x的第五位

    > match(y,x)#按照y的顺序排列x
    [1] 2 4 5 1 3
    > x[match(y,x)]
    [1] "B" "D" "E" "A" "C"
    

    相关文章

      网友评论

          本文标题:R语言-3-数据结构_向量

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