2016-04-21 54 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" 
相关问题