2

我需要拆分并获取之前的所有字符^

示例:我在数据框中有一列读取

2567543^ABC 
7545435^J 
8934939^XY

并且同一数据框中的结果列应为:

2567543
7545435
8934939

我尝试使用stringr, strsub{base}, stringi, gsubfn. 但他们抛出了奇怪的结果,因为^. 我无法更换^,因为这张桌子实在是太大了。

4

1 回答 1

3

^只需从最后一个 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
于 2015-04-11T05:59:22.250 回答