我需要拆分并获取^
例如: 我在数据框中有一列读取
2567543^ABC
7545435^J
8934939^XY
并且同一数据框中的结果列应为:
2567543
7545435
8934939
我尝试使用stringr
,strsub{base}
,stringi
,gsubfn
。但他们因为^
而投掷了奇怪的结果。我不能替换^
因为表格很大。
答案 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