Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 理解base::idential()--为什么是;更安全;?_R - Fatal编程技术网

R 理解base::idential()--为什么是;更安全;?

R 理解base::idential()--为什么是;更安全;?,r,R,我一直听说idential()比=更“安全”。但是,把两者都玩弄在一起,似乎是后者而不是前者取得了想要的结果。我假设这与nrow()生成的对象的属性有关,但最好在下面的示例中解释一下为什么会发生这种情况: > identical(3653510+2751069, 6404579) [1] TRUE > identical((3653510+nrow(df)), nrow(df2)) [1] FALSE > nrow(df) [1] 2751069 > nrow(df2)

我一直听说
idential()
=
更“安全”。但是,把两者都玩弄在一起,似乎是后者而不是前者取得了想要的结果。我假设这与
nrow()
生成的对象的属性有关,但最好在下面的示例中解释一下为什么会发生这种情况:

> identical(3653510+2751069, 6404579)
[1] TRUE
> identical((3653510+nrow(df)), nrow(df2))
[1] FALSE
> nrow(df)
[1] 2751069
> nrow(df2)
[1] 6404579
> nrow(df2)-nrow(df)
[1] 3653510
> (3653510+nrow(df))==nrow(df2)
[1] TRUE
总之,我有两个问题:

  • idential()
    发生了什么
  • 在这种情况下,我们说函数“更安全”是什么意思

  • 这可能是一种属性差异。e、 g

    n1 <- 2751069
    n2 <- 6404579
    identical((3653510 + n1), n2)
    #[1] TRUE
    
    使用
    all.equal
    ,我们还可以指定
    check.attributes=FALSE

    n2 <- 6404579L
    identical((3653510 + n1), n2)
    #[1] FALSE
    
    all.equal((3653510 + n1), n2, check.attributes = FALSE)
    #[1] TRUE
    

    尝试使用
    all.equal
    <代码>相同还检查属性。。。因此,
    numeric
    int
    之间可能存在差异,即
    类(3653510+2751069);类别(6404579);等级(3653510+nrow(df));类别(nrow(df2))