2016-04-21 57 views

回答

4

我們可以使用grep

grep("^([0-9]+|X|Y)$", myvec, value=TRUE) 
#[1] "122" "112" "X" "Y" 
+0

謝謝,'value = TRUE'這裏指的是什麼? – MAPK

+2

@MAPK如果你不使用它,'grep'返回它匹配的元素的數字索引,然後你必須對它進行子集化,即'myvec [grep(「^([0-9] + | X | Y) $「,myvec)]'。通過使用'value = TRUE',它返回值而不是索引。 – akrun

2

我們也可以定義固定的查找列表,然後匹配。

# messy chromosome names: 
myvec <- c("1","12","ghtt1","fff","22","X","Y") 

# result 
myvec[ which(myvec %in% c(1:22,"X","Y")) ] 
# [1] "1" "12" "22" "X" "Y" 
相關問題