我需要拆分并获取之前的所有字符^
示例:我在数据框中有一列读取
2567543^ABC
7545435^J
8934939^XY
并且同一数据框中的结果列应为:
2567543
7545435
8934939
我尝试使用stringr
, strsub{base}
, stringi
, gsubfn
. 但他们抛出了奇怪的结果,因为^
. 我无法更换^
,因为这张桌子实在是太大了。
^
只需从最后一个 usingsub
函数中删除所有字符。由于^
是正则表达式中与行首匹配的特殊元字符,因此您需要转义^
符号以匹配文字^
符号。
sub("\\^.*", "", df$x)
例子:
> df <- data.frame(x=c("2567543^ABC", "7545435^J", "8934939^XY"))
> df$x <- sub("\\^.*", "", df$x)
> df
x
1 2567543
2 7545435
3 8934939
或者
> df <- data.frame(x=c("2567543^ABC", "7545435^J", "8934939^XY"))
> df$x <- strsplit(as.character(df$x), "\\^")[[1]][1]
> df
x
1 2567543
2 2567543
3 2567543
或者
fixed=TRUE
在 strsplit 中使用参数,因为^
是一个特殊字符。
> df <- data.frame(x=c("2567543^ABC", "7545435^J", "8934939^XY"))
> df$x <- strsplit(as.character(df$x), "^", fixed=TRUE)[[1]][1]
> df
x
1 2567543
2 2567543
3 2567543