前にすべての文字を分割して取得する必要があります^
例:データフレームに次の列があります
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