您可以结合strsplit
和anyDuplicated
在基础R中接近您想要的.
sapply(strsplit(A, "-"), anyDuplicated, fixed=TRUE) [1] 3 0 3 3
anyDuplicated
返回重复值的第一个索引.正如@ rich-scriven笔记,加入fixed=TRUE
了strsplit
功能应该提高效率,因为它做了文字映射(无正则表达式参与)
你可以把它包装好 pmin
以获得所需的结果:
pmin(sapply(strsplit(A, "-", fixed=TRUE), anyDuplicated), 1) [1] 1 0 1 1
或者作为@ rich-scriven笔记,用于sign
转换值.
sign(sapply(strsplit(A, "-", fixed=TRUE), anyDuplicated)) [1] 1 0 1 1