3

次のエラーメッセージに問題があります

無効な正規表現'([aZ] *)_(。*)'、理由'無効な文字範囲'

したがって、エラーの原因となるコード行は次のとおりです。

if(tide=="long") names(problem) <- sub("([a-Z]*)_(.*)","\\2",problem)

したがって、関数のパラメータtideにlongが選択されている場合は、問題の名前を定義する必要があります。

しかしfunction(...,tide="long",..)、上記のエラーメッセージを入力すると表示されます。

4

2 に答える 2

6

文字の順序が間違っているため、は使用できません[a-Z]が、とにかく使用することをお勧めします。

[a-zA-Z]

問題は、これらの範囲がテーブル (ASCII または Unicode) に基づいているが、大文字の "Z" が小文字の "a" の前にあるため、範囲の順序が間違っていることです。

使用する他の解決策[A-z]は有効な範囲ですが、文字があります

[\]^_`

文字「Z」と文字「a」の間なので、この範囲には、通常は一致させたくない文字が含まれます。

于 2012-08-15T09:34:45.320 に答える
0

あなたの問題はこれです[a-Z]

次のいずれかを書く必要があります:[a-z]または[a-zA-Z]

于 2012-08-15T09:34:25.010 に答える