何时使用哪个()?

时间:2017-08-30 14:24:07

标签: r

似乎which()函数有点多余,因为您已经可以像这样对data.frame进行子集化:

data1[data1$foo>0,]

不使用which()

何时必要which()

的子集。

2 个答案:

答案 0 :(得分:2)

存在NA值时会出现差异:

dd <- data.frame(a = c(-1, NA, 1), b = 2)
ok <- dd$a > 0

dd[which(ok),]
##   a b
## 3 1 2

dd[ok, ]
##     a  b
## NA NA NA
## 3   1  2

答案 1 :(得分:0)

data1[data1$foo>0,]这会给你布尔值:

T F T F

另外,如果您有subset(data1,foo>0)

,请推荐子集NA

data1[which(data1$foo>0),]回复T

的位置

1,3