代码之家  ›  专栏  ›  技术社区  ›  llewmills

根据数字是否为整数过滤数值向量[重复]

  •  0
  • llewmills  · 技术社区  · 2 年前

    我需要一个函数(定制或来自软件包),可以根据数字是否为整数过滤数字向量。

    在下面的向量中

    vec <- c(1.0, 5.0, 5.3, 10.0, 2.5)
    

    我想让它出来

    integerFunction(vec)
    
    [1]  TRUE  TRUE FALSE  TRUE FALSE
    

    我知道R有特殊的数值和整数类,但这不是我要说的。我需要找到整数 在内部 数值类向量(即小数点后的值大于0)

    2 回复  |  直到 2 年前
        1
  •  1
  •   Kra.P    2 年前

    您可以尝试使用 floor

    integerFunction <- function(x) {
      x - floor(x) == 0
    }
    integerFunction(c(1.0, 5.0, 5.3, 10.0, 2.5))
    
    [1]  TRUE  TRUE FALSE  TRUE FALSE
    
        2
  •  1
  •   Kota Mori    2 年前

    另一种方法是以防万一这对某人有帮助。 如果浮点值除以1时没有余数,则将其视为整数。

    integerFunction <- function(x) {
      (x %% 1) == 0 
    }
    
    vec <- c(1.0, 5.0, 5.3, 10.0, 2.5)
    integerFunction(vec)
    # [1]  TRUE  TRUE FALSE  TRUE FALSE