0
我有称为字符矢量特定字母:过滤器的东西是不是数字或字符向量
myvec<- c("122","112","ghtt1","fff","223F","X","Y")
如何才能筛选并获得唯一的数字,“X”和“Y”作为
预期输出:
122,112,X,Y
我有称为字符矢量特定字母:过滤器的东西是不是数字或字符向量
myvec<- c("122","112","ghtt1","fff","223F","X","Y")
如何才能筛选并获得唯一的数字,“X”和“Y”作为
预期输出:
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"
谢谢,'value = TRUE'这里指的是什么? – MAPK
@MAPK如果你不使用它,'grep'返回它匹配的元素的数字索引,然后你必须对它进行子集化,即'myvec [grep(“^([0-9] + | X | Y) $“,myvec)]'。通过使用'value = TRUE',它返回值而不是索引。 – akrun