下面是我正在处理的数据集的示例。
df <- data.frame( precinct = c("01-001", "01-002", "Adv 1 01-001", "Adv 1 01-002"), total = c(100, 102, 4, 6))我需要删除特定的字符串"Adv 1“,同时保持其他所有的完整。我考虑了str_replace()和str_remove()这样的字符串函数,但我知道它只适用于单个字母。是否有执行修整的功能或过程?
发布于 2022-02-10 02:31:18
您可以使用gsub()将文本替换为空。
更新2:@r2evans:指出
如果字符串中有多个"Adv 1“模式,并且只希望替换开头的模式,则在代码中使用"^Adv 1”而不是"Adv 1“(例如df %>% mutate(precinct = gsub("^Adv 1 ", "", precinct)))。
^是一个正则表达式(regex),它指定字符串的开头。
谢谢你的建议!
蒂德弗斯
这将不会取代您的df,除非您将结果分配给它。
library(tidyverse)
df %>% mutate(precinct = gsub("Adv 1 ", "", precinct))tidyverse更新:在评论中,@Onyambu建议我为解决方案包括以下代码。谢谢@Onyambu!
df %>% mutate(precinct = str_remove(precinct, 'Adv 1 '))和
df %>% mutate(precinct = str_replace(precinct, 'Adv 1 ', ''))基R
这将立即取代您的df。
df[, 1] <- gsub("Adv 1 ", "", df[, 1])发布于 2022-02-10 02:48:32
另一个R基解决方案:
df <- data.frame( precinct = c("01-001", "01-002", "Adv 1 01-001", "Adv 1 01-002"), total = c(100, 102, 4, 6))
df[,1] <- trimws(df[,1], whitespace = "Adv 1")https://stackoverflow.com/questions/71059083
复制相似问题