2

前にすべての文字を分割して取得する必要があります^

例:データフレームに次の列があります

2567543^ABC 
7545435^J 
8934939^XY

同じデータフレームの結果列は次のようになります。

2567543
7545435
8934939

stringrstrsub{base}stringi、を使ってみgsubfnました。しかし、彼らは奇妙な結果を投げてい^ます。^ただテーブルが大きいので 交換できません。

4

1 に答える 1

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

また

は特殊文字である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
于 2015-04-11T05:59:22.250 に答える