如何获取startsWith函数以返回值,而不是布尔值

问题描述

我正在使用startsWith函数,并且希望它返回值,而不是布尔值。

string <- ("dem_seat","factor(state)CT","factor(state)DE")
startsWith(string,"factor(state)")
> FALSE  TRUE  TRUE

我希望它返回:

> "factor(state)CT" "factor(state)DE"

解决方法

我们可以将grepvalue = TRUE一起使用(默认情况下,它返回数字索引或位置索引)

grep("^factor\\(state\\)",string,value = TRUE)

如果我们有一个逻辑向量,我们可以将其用作子集的索引

string[startsWith(string,"factor(state)")]
,

我们可以使用str_subset中的stringr

library(stringr)

string <- c("dem_seat","factor(state)CT","factor(state)DE")
str_subset(string,fixed("factor(state)"))
#[1] "factor(state)CT" "factor(state)DE"