Regex 从字符向量中过滤非数字或特定字母的内容

Regex 从字符向量中过滤非数字或特定字母的内容,regex,r,Regex,R,我有一个字符向量,叫做: myvec<- c("122","112","ghtt1","fff","223F","X","Y") 我们可以使用grep grep("^([0-9]+|X|Y)$", myvec, value=TRUE) #[1] "122" "112" "X" "Y" 我们可以使用grep grep("^([0-9]+|X|Y)$", myvec, value=TRUE) #[1] "122" "112" "X" "Y" 我们还可以定义固定的查找列表,

我有一个字符向量,叫做:

myvec<- c("122","112","ghtt1","fff","223F","X","Y")

我们可以使用
grep

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

我们可以使用
grep

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

我们还可以定义固定的查找列表,然后匹配

# 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" 
#混乱的染色体名称:

myvec我们还可以定义固定的查找列表,然后匹配

# 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" 
#混乱的染色体名称:

myvec谢谢,这里的
value=TRUE
说明了什么?@MAPK如果你不使用它,
grep
返回它匹配的元素的数字索引,然后你必须对它进行子集,即
myvec[grep(^([0-9]+|X | Y)$”,myvec)]
。通过使用
value=TRUE
,它返回的是值而不是索引。谢谢,
value=TRUE
在这里说明了什么?@MAPK如果不使用它,
grep
返回它匹配的元素的数字索引,然后你必须对它进行子集,即
myvec[grep(^([0-9]+|X | Y)$”,myvec)]
。通过使用
value=TRUE
,它返回值而不是索引。