根据" ^"拆分字符串在R

时间:2015-04-11 05:57:39

标签: r string stringr stringi

我需要拆分并获取^

之前的所有字符

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

2567543^ABC 
7545435^J 
8934939^XY

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

2567543
7545435
8934939

我尝试使用stringrstrsub{base}stringigsubfn。但他们因为^而投掷了奇怪的结果。我不能替换^因为表格很大。

1 个答案:

答案 0 :(得分:3)

只需使用^功能将所有字符从sub删除到最后一个字符。由于^是正则表达式中与行开头匹配的特殊元字符,因此您需要按顺序转义^符号以匹配文字^符号。

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

在strsplit中使用fixed=TRUE参数,因为^是一个特殊字符。

> 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