zoukankan      html  css  js  c++  java
  • numeric与double的区别

    关于一个type, 有numeric(创建), as.numeric(转换)和is.numeric(判断)这三个函数. 所以numeric与double 来看看这三类函数表现有什么区别.

    numeric与double函数没有区别. as.numeric与as.double也没有区别. 但is.numeric和is.double就有区别了.

    区别在于: is.numeric在参数的typeof是integer和double都会返回T. 而is.double则只有在base是double的情况下才返回T, integer为base是会返回FALSE的.

    比如:

    > a=c(1L,2L)
    > is.numeric(a)
    [1] TRUE
    > is.double(a)
    [1] FALSE
    

    对于list, 它的typeof本来就不是integer等, 所以即使元素的确都是numeric, is.numeric还是会得到FALSE

    > l=list(a=1,b=2)
    > is.numeric(l)
    [1] FALSE
    

    从下面可以看出: 判断的是base, 而不一定是向量.

    > d=Sys.Date() 
    > class(d)
    [1] "Date"
    > typeof(d)                                                                                           
    [1] "double"                                                                                          
    > d                                                                                                   
    [1] "2020-10-13"                                                                                      
    > is.double(d)                                                                                        
    [1] TRUE
    
    不解的地方

    文档说integer vectors的class包括c("integer", "numeric")

    Most vectors have class the result of mode(x), except that integer vectors have class c("integer", "numeric") and real vectors have class c("double", "numeric").

    > x=integer(3)
    > class(x)
    [1] "integer"
    

    class并不包括numeric

  • 相关阅读:
    vim使用基础
    linux基本命令随笔
    linux学习笔记
    中台建设随笔
    数据密集型系统响应优化
    TCP断开连接的问题
    多渠道接入系统总结
    关于实践的认识
    博客说明
    python下载图片的问题思考
  • 原文地址:https://www.cnblogs.com/Tokubara/p/13808665.html
Copyright © 2011-2022 走看看