根据R中的“^”拆分字符串
Split a string based on "^" in R
我需要拆分并获取^
之前的所有字符
示例:
我在数据框中有一列显示为
2567543^ABC
7545435^J
8934939^XY
并且同一数据框中的结果列应为:
2567543
7545435
8934939
我尝试使用 stringr
、strsub{base}
、stringi
、gsubfn
。但是他们抛出了奇怪的结果,因为 ^
。我无法替换 ^
,因为 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
我需要拆分并获取^
示例: 我在数据框中有一列显示为
2567543^ABC
7545435^J
8934939^XY
并且同一数据框中的结果列应为:
2567543
7545435
8934939
我尝试使用 stringr
、strsub{base}
、stringi
、gsubfn
。但是他们抛出了奇怪的结果,因为 ^
。我无法替换 ^
,因为 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