gpt4 book ai didi

r - 矢量比较中的奇怪结果

转载 作者:行者123 更新时间:2023-12-01 23:09:19 25 4
gpt4 key购买 nike

我是初学者,只有 2 周的经验。

我现在的系统是WIN11上的R 4.1.2 windows

当我运行下面的代码时,

y <- c(1, 2, 3, 4)
z <- c(1, 4)
y == z

输出为 TRUE FALSE FALSE TRUE,这是完全可以接受的。

但是,当我将向量 y 序列更改为

y <- c(2, 1, 3, 4) 
z <- c(1, 4)
y == z

然后,令人惊讶的是,输出是 FALSE FALSE FALSE TRUE,而我支持结果将是 TRUE FALSE FALSE TRUE。

我怎么了?任何人都可以帮助我解释向量比较的方案以及为什么我有上述结果吗?

最佳答案

在您的示例中,较小的矢量正在“回收”,这会导致您的“奇怪”结果,即

y <- c(1, 2, 3, 4)
z <- c(1, 4)
y == z
#> [1] TRUE FALSE FALSE TRUE

y <- c(2, 1, 3, 4)
z <- c(1, 4)
y == z
#> [1] FALSE FALSE FALSE TRUE

当“手动”回收较小的向量时,您会得到相同的结果:

y <- c(1, 2, 3, 4)
z <- c(1, 4, 1, 4)
y == z
#> [1] TRUE FALSE FALSE TRUE

y <- c(2, 1, 3, 4)
z <- c(1, 4, 1, 4)
y == z
#> [1] FALSE FALSE FALSE TRUE

我怀疑您正在寻找 %in% 值匹配运算符(即对于向量“y”中的每个数字,它是否存在于“z”中?):

y <- c(2, 1, 3, 4) 
z <- c(1, 4)
y %in% z
#> [1] FALSE TRUE FALSE TRUE

这是否解决了您的问题?

关于r - 矢量比较中的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70209135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com