根据R中的“^”拆分字符串

Split a string based on "^" in R

我需要拆分并获取^

之前的所有字符

示例: 我在数据框中有一列显示为

2567543^ABC 
7545435^J 
8934939^XY

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

2567543
7545435
8934939

我尝试使用 stringrstrsub{base}stringigsubfn。但是他们抛出了奇怪的结果,因为 ^。我无法替换 ^,因为 table 实在是太大了。

只需使用 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