我有三个载体
evens <- c(2,4,6,8,10,12,14,16,18,20)
r <- c(4,5,8,9,12)
t <- c(10,12)
which( evens > r)# returns to 6,7,8,9,10
which( evens > t)# returns to 7,8,9,10
为什么结果不同?
请问您能说明哪种功能有效?
答案 0 :(得分:3)
正如其他人已经指出这是由于R的回收规则。你可以通过这样做来详细了解它的工作原理:
> data.frame(evens, r, t, evens > r, evens > t)
evens r t evens...r evens...t
1 2 4 10 FALSE FALSE
2 4 5 12 FALSE FALSE
3 6 8 10 FALSE FALSE
4 8 9 12 FALSE FALSE
5 10 12 10 FALSE FALSE
6 12 4 12 TRUE FALSE
7 14 5 10 TRUE TRUE
8 16 8 12 TRUE TRUE
9 18 9 10 TRUE TRUE
10 20 12 12 TRUE TRUE
因此,当您执行which(evens > r)
时,您会获得上方TRUE
列中所有event...r
的索引。