由於行名稱,編制索引還適用於載體,我們可以進一步採取這種一步到位並定義:
'%ino%' <- function(x, table) {
xSeq <- seq(along = x)
names(xSeq) <- x
Out <- xSeq[as.character(table)]
Out[!is.na(Out)]
}
我們現在所期望的結果:
df[rownames(df) %ino% vec, 1]
[1] 2 1 3
在函數內部,姓名()並自動轉換爲字符和表與as.character()改變,所以這也正常工作時,輸入%伊諾%的數字:
LETTERS[1:26 %in% 4:1]
[1] "A" "B" "C" "D"
LETTERS[1:26 %ino% 4:1]
[1] "D" "C" "B" "A"
繼%以%,缺失值被移除:
LETTERS[1:26 %in% 3:-5]
[1] "A" "B" "C"
LETTERS[1:26 %ino% 3:-5]
[1] "C" "B" "A"
隨着%以%計的沿所述對象的尺寸重複的邏輯順序被子集,這不符合%伊諾%的情況下:
data.frame(letters, LETTERS)[1:5 %in% 3:-5,]
letters LETTERS
1 a A
2 b B
3 c C
6 f F
7 g G
8 h H
11 k K
12 l L
13 m M
16 p P
17 q Q
18 r R
21 u U
22 v V
23 w W
26 z Z
data.frame(letters, LETTERS)[1:5 %ino% 3:-5,]
letters LETTERS
3 c C
2 b B
1 a A
的積分,但兩種解決方案均可使用。謝謝! – jslefche