startsWith 函数表示 returns 一个字符串而不是一个布尔值?

startsWith Function that returns a string instead of a Boolean?

我正在使用 startsWith 函数。我想知道如何将它变成 return 实际的字符串名称而不是布尔值。我也愿意使用其他功能。

startsWith(c("sad_game", "angry_mad", "happy_name"), "happy")
[1] FALSE FALSE  TRUE

谢谢!

而不是 startsWith,使用 grep 到 return 动态值 ^ 指定字符串的开头(编辑 - 基于@Ben博克评论)

grep("^happy", c("sad_game", "angry_mad", "happy_name"), value = TRUE)
[1] "happy_name"

startsWith returns 是一个逻辑向量。我们需要将逻辑向量作为索引对原始向量进行子集

c("sad_game", "angry_mad", "happy_name")[startsWith(c("sad_game", 
      "angry_mad", "happy_name"), "happy")]

请注意,在上面,我们必须输入两次原始向量。更好的选择是创建一个对象并重用它

v1 <- c("sad_game", "angry_mad", "happy_name")
v1[starts_with(v1, "happy")]

另一种选择是使用 stringr

中的 str_subset
x <- c("sad_game", "angry_mad", "happy_name")
stringr::str_subset(x, '^happy')
#[1] "happy_name"

基于stringi::stri_subset_regex

stringi::stri_subset_regex(x, '^happy')