Rを使って "A01"を "A1"に変換するには?Rを使って "A01"を "A1"に変換するには?
最初の手順として、文字列の中間の文字を取得しようとしましたが、できませんでした。
STR <- "A01"
p <- as.character(substr(STR,2,1))
私は次のようになります。私はRに非常に新しいです。アドバイスをお願いします。
[1] ""
Rを使って "A01"を "A1"に変換するには?Rを使って "A01"を "A1"に変換するには?
最初の手順として、文字列の中間の文字を取得しようとしましたが、できませんでした。
STR <- "A01"
p <- as.character(substr(STR,2,1))
私は次のようになります。私はRに非常に新しいです。アドバイスをお願いします。
[1] ""
あなたは0
値を置き換えるために前後参照を使用することができます。
sub('(?<![0-9])0*(?=[0-9])', '', STR, perl=TRUE)
[1] "A1"
式は数に先行されていないすべての0
文字に一致しますが、番号が続いています。
sub('(?<![0-9])0*(?=[0-9])', '', 'A0010', perl=TRUE)
[1] "A10"
sub('(?<![0-9])0*(?=[0-9])', '', 'A00', perl=TRUE)
[1] "A0"
ありがとう!あなたは私の一日を作った。 – RanonKahn
我々はまた、正規表現前後参照せずに
sub("([A-Z]+)0*([0-9]+)", "\\1\\2", c("A01", "A0010", "A00"))
#[1] "A1" "A10" "A0"
これを行うことができ、あなたがフォローしたい一般的なルールは何ですか?あなたのすべての価値は、ただ一つの手紙から始まるでしょうか? – MrFlick
文字列が "A00"の場合はどうなりますか? – Fernando
私はそれを試みた。それが「A10」であるとき、「A1」にすべきではない。それは "A10"でなければなりません。どんな助け? – RanonKahn