a是数字向量,b是逻辑的。什么是suma [b]

时间:2017-04-06 19:27:51

标签: r indexing subset

设a< -c(3,4,7,8)和b< -c(TRUE,TRUE,FALSE,FALSE),R表达式和(a [b])的输出是什么。答案是7,但是如何?

1 个答案:

答案 0 :(得分:0)

在R中,向量(问题中的a)可以是带有逻辑索引向量的子集(问题中为b)。如果逻辑向量中的相应成员为TRUE,则保留(a)元素。

a = c (3, 4, 7, 8)
b = c(TRUE, TRUE, FALSE, FALSE)

a[b]
#[1] 3 4

a[b]将仅保留a的前两个元素,因为TRUE中只有b的值sum。当您3 47时,a[ b[1:3] ] [1] 3 4 8 # the fourth item in `a` appears because the logical vector is "recycled"

如果你给" ["函数一个比作为子集的向量短的向量,你可能得到令人惊讶的结果(并且不会出现警告):

awk