前にすべての文字を分割して取得する必要があります^
例:データフレームに次の列があります
2567543^ABC
7545435^J
8934939^XY
同じデータフレームの結果列は次のようになります。
2567543
7545435
8934939
stringr、strsub{base}、stringi、を使ってみgsubfnました。しかし、彼らは奇妙な結果を投げてい^ます。^ただテーブルが大きいので 交換できません。
^最後の使用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
また
は特殊文字である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