R中的恒等式和向量:MyData1==c(“a”、“b”)如何工作(或不工作)
我犯了一个错误,没有在%c(“a”、“b”)中写入R中的恒等式和向量:MyData1==c(“a”、“b”)如何工作(或不工作),r,vector,boolean-expression,R,Vector,Boolean Expression,我犯了一个错误,没有在%c(“a”、“b”)中写入MyData1% …我写了MyData1==c(“a”,“b”) …但我想知道这是如何以及为什么不起作用的。为什么会发生以下情况 > MyData1 <- rep(c("a", "b", "b"), 4) > MyData1 [1] "a" "b" "b" "a" "b"
MyData1%
…我写了MyData1==c(“a”,“b”)
…但我想知道这是如何以及为什么不起作用的。为什么会发生以下情况
> MyData1 <- rep(c("a", "b", "b"), 4)
> MyData1
[1] "a" "b" "b" "a" "b" "b" "a" "b" "b" "a" "b" "b"
> MyData1 == c("a", "b")
[1] TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE TRUE
…我一点也不聪明…现在无论我测试向量的1个或2个元素,我都会得到两个项目 这是因为向量循环
=
执行元素级比较,而%中的%检查整个向量中的值,并且该元素的位置无关紧要
当一个向量/值的长度比另一个短时,R将回收该值并使其长度相等
当你这样做的时候
MyData1 == c("a", "b")
将MyData1
中的第一个值与中的“a”
进行比较,MyData1
中的第二个值与中的“b”
进行比较。现在,由于向量c(“a”,“b”)
更短,R再次回收相同的值,因此将MyData1
的第三个值与“a”
进行比较,第四个值与“b”
进行比较,依此类推
在下一部分中,向量循环再次发生,但这次方向相反
MyData1[1] == c("a", "b")
MyData1[1]
的长度为1,因此将MyData1[1]
的第一个值与的“a”
进行比较,现在再次重复相同的值以与的“b”
进行比较,从而得到
#[1] TRUE FALSE
#[1] TRUE FALSE