在下面的字符串中,我只想提取与“Left”和“Right”匹配的值,并使用
mutate()
排除其余部分。假设我有一个数据集 data
,其中有一列名为 string
。
library(tidyverse)
data$string <- c("Left A", "Left Middle A", "Middle A", "Right Middle A", "Right A")
data1 <- data %>%
mutate(Location = ifelse(gsub("\\bLeft\\b", string) | gsub("\\bRight\\b", string),
"Out",
"In"))
但是由于空格的原因,它会返回字符串中包含“Left”和“Right”的所有内容。我怎样才能让它认识到我只希望它匹配第一个单词而不是后面的任何内容?
类似这样的:
library(dplyr)
data %>%
mutate(Location = if_else(grepl("^(Left|Right)( |$)", string), "Out", "In"))
string Location
1 Left A Out
2 Left Middle A Out
3 Middle A In
4 Right Middle A Out
5 Right A Out