在r中查找字符串中最后一个逗号的位置
我有一个数据框,其中一列包含文本字符串:在r中查找字符串中最后一个逗号的位置,r,find,location,comma,R,Find,Location,Comma,我有一个数据框,其中一列包含文本字符串: 1 Blue, Tall, leather, VA 2 Green, Medium, VA* 3 Pink, MD 4 Yellow, MA 最后2个,或有时带“*”的3个是州名称。我希望能够提取每行左边或最后一个“,”的所有内容。在r中实现这一点的最佳方法是什么 我是新手,所以请帮忙 我预计产出为: 1 Blue, Tall, leather 2 Green, Medium 3 Pink 4 Yellow 使用正则表达式
1 Blue, Tall, leather, VA
2 Green, Medium, VA*
3 Pink, MD
4 Yellow, MA
最后2个,或有时带“*”的3个是州名称。我希望能够提取每行左边或最后一个“,”的所有内容。在r中实现这一点的最佳方法是什么
我是新手,所以请帮忙
我预计产出为:
1 Blue, Tall, leather
2 Green, Medium
3 Pink
4 Yellow
使用正则表达式:
vector <- c("Blue, Tall, leather, VA", "Green, Medium, VA*", "Pink, MD", "Yellow, MA")
sub("^(.*),.*$", "\\1", vector)
vector在逗号处拆分
,然后粘贴
除最后一项以逗号分隔外的所有内容
vector <- c("Blue, Tall, leather, VA", "Green, Medium, VA*", "Pink, MD", "Yellow, MA")
sapply(X = strsplit(x = vector, split = ","),
FUN = function(x) paste(head(x, -1), collapse = ","))
#[1] "Blue, Tall, leather" "Green, Medium" "Pink" "Yellow"
vector一个选项,该选项带有与匹配的子,
,后跟零个或多个非,
([^,]*
)字符,直到字符串的结尾($
),并替换为空白(“
)
或使用trimws
(从R 3.6.0
开始)
或者使用stru从stringr
library(stringr)
str_remove(v1, ",[^,]*$")
数据
v1
trimws(v1, whitespace = ",[^,]*")
#[1] "Blue, Tall, leather" "Green, Medium" "Pink" "Yellow"
library(stringr)
str_remove(v1, ",[^,]*$")
v1 <- c("Blue, Tall, leather, VA", "Green, Medium, VA*", "Pink, MD", "Yellow, MA")