美文网首页
R语言编程艺术 第2章 向量(下)

R语言编程艺术 第2章 向量(下)

作者: 小洁忘了怎么分身 | 来源:发表于2019-01-27 23:32 被阅读55次

    2.7NA与NULL值

    NA:缺失值
    向量中有一个缺失值NA,会导致mean()等函数计算出的结果均为NA。但可将na.rm参数设置为TRUE,可以跳过缺失值,计算其余元素。
    NULL:空值,当作不存在
    NULL的一个用法是在循环中创建向量,其中每次迭代都在这个向量上增加一个元素。

    z <- NULL
    for (i in 1:10) if (i %% 2 == 0) z <- c(z,i)
    

    2.8 筛选

    (1)“筛选索引”,就是你要筛选出来的元素需要满足的条件,比如x[x>8]
    x[x>8] <- 0
    注意,这种筛选方式不会自动排除NA。

    x <- c(1,3,5,NA)
    x[x>4]
    #[1]5 NA
    

    (2)subset()筛选,可以自动排除NA

    x <- c(1,3,5,NA)
    subset(x,x>4)
    #[1]5
    

    (3)which 返回TRUE的下标(位置)

    which(x>4)
    #3
    

    在一个向量中找出满足一定条件的元素首次出现的位置which(x>4)[1]
    在一个向量中找出满足一定条件的元素x[which(x>4)[1]]

    2.9 向量化的ifelse()函数

    ifelse(b,u,v),其中b是一个布尔值向量,而u和v是向量。
    该函数返回的值也是向量,如果b[i]为真,则返回值的第i个元素为u[i],如果b[i]为假,则返回值的第i个元素为v[i]。

    x<-1:10
    ifelse(x%%2==0,5,12)
    

    这段代码的意思是以1:10为输入,如果是偶数则输出5,是基数则输出12。

    2.10 向量相等

    除==外还可以用identical,是判断是否完全一致,注意默认的数字类型是双精度型,用:产生的则是整数型,不同数据类型来判断,会产生不相等的结果。

    2.11 向量元素的名称

    用names函数可以给元素命名。

    2.12 关于c()的更多内容

    如果传递到c()中的参数有不同的类型,则它们将被降级为同一类型,该类型最大限度地保留它们的共同特性。混合整数型和字符型,R会选择把它们都转换为字符型。另外,c()函数对向量有扁平化的效果,c(1,4,c(0.5,1))会生成1,4,0.5,1。

    相关文章

      网友评论

          本文标题:R语言编程艺术 第2章 向量(下)

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