【r<-基础】识别R对象的类和类型

作者: 王诗翔 | 来源:发表于2018-05-12 18:26 被阅读20次

    除了使用is.*()函数,我们也可以使用class()typeof()函数来实现类型的识别。

    接下来用例子展示class()typeof()作用在不同类型的对象上,它们输出信息的不同之处,我们用str()展示对象的结构。

    对于数值向量:

    x <- c(1, 2, 3)
    class(x)
    ## [1] "numeric"
    typeof(x)
    ## [1] "double"
    str(x)
    ##  num [1:3] 1 2 3
    

    对于整数向量:

    x <- 1:3
    class(x)
    ## [1] "integer"
    typeof(x)
    ## [1] "integer"
    str(x)
    ##  int [1:3] 1 2 3
    

    对于字符向量:

    x <- c("a", "b", "c")
    class(x)
    ## [1] "character"
    typeof(x)
    ## [1] "character"
    str(x)
    ##  chr [1:3] "a" "b" "c"
    

    对于列表:

    x <- list(a = c(1, 2), b = c(TRUE, FALSE))
    class(x)
    ## [1] "list"
    typeof(x)
    ## [1] "list"
    str(x)
    ## List of 2
    ##  $ a: num [1:2] 1 2
    ##  $ b: logi [1:2] TRUE FALSE
    

    对于数据框:

    x <- data.frame(a = c(1, 2), b = c(TRUE, FALSE))
    class(x)
    ## [1] "data.frame"
    typeof(x)
    ## [1] "list"
    str(x)
    ## 'data.frame':    2 obs. of  2 variables:
    ##  $ a: num  1 2
    ##  $ b: logi  TRUE FALSE
    

    可以看到,typeof()返回对象的低级内部类型,class()返回对象的高级类。data.frame本质上就是具有等长成分的list


    在进行向量化计算是不少函数都非常有用,比如&|ifelse()等。

    在取最大最小值方面,对应于普通的max()min()函数,我们可以使用pmax()pmin()求取平行最大、最小值。

    相关文章

      网友评论

        本文标题:【r<-基础】识别R对象的类和类型

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