![](/img/trans.png)
[英]Removing multiple words from a string using a vector instead of regexp in R
[英]Removing different words from vector in R
假设我在 R 中有一个像这样的长数据框:
var1 <- c("Los Angeles - CA", "New York - NY", "Seattle - WA", "Los Angeles - CA", "New York - NY")
var2 <- c(1, 2, 3, 4, 5)
df <- data.frame(var1, var2)
我想删除“ - 状态”,以获得如下结果:
var1 <- c("Los Angeles", "New York", "Seattle", "Los Angeles", "New York")
var2 <- c(1, 2, 3, 4, 5)
df <- data.frame(var1, var2)
我无法弄清楚如何这样做,因为我有超过 5,000 行并且不能使用 gsub,因为我必须删除每个 state 缩写 state 。 我的意思是,在使用这些函数之前,我必须先定义许多模式(-State),
有没有一种简单的方法可以通过使用一些我还没有弄清楚的拆分模式来一次从该列中删除所有“-State”?
几个选项。
最基本的就是删除最后 5 个字符。
library(stringr)
str_sub(var1, 1L, -6L)
或者也许搜索模式并删除它:
gsub(" - \\w+$","",var1)
或者
str_remove_all(var1, " - \\w+$")
所有人都会得到相同的结果
[1] "Los Angeles" "New York" "Seattle" "Los Angeles" "New York"
var1 <- c("Los Angeles - CA", "New York - NY", "Seattle - WA", "Los Angeles - CA", "New York - NY")
gsub(" - [A-Z]+$", "", var1)
[1] "Los Angeles" "New York" "Seattle" "Los Angeles" "New York"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.