Rの2つのデータフレームにはそれぞれIPアドレスのフィールドが含まれています。各データフレームでは、これらのフィールドは「要因」です。ユーザは、これらのIPアドレスおよび他のいくつかのフィールドに基づいて2つのデータフレームをマージしようとします。問題は、各データフレームは、IPアドレスのために異なるフォーマットを有していることである。RのIPアドレスの先行ゼロを効率的に削除(または追加)するには?
Dataframe A examples: 123.456.789.123, 123.012.001.123, 987.001.010.100
データフレームBの同じIPアドレスのようにフォーマットされます:削除するいずれかの最高の(最も効率的)な方法は何
Dataframe B examples: 123.456.789.123, 123.12.1.123, 987.1.10.100
Aからの先頭の0をBに追加して、マージで使用できるようにしますか?操作は何百万ものレコードにわたって実行されるため、「最も効率的」は計算時間を考慮したものです(比較的高速にする必要があります)。
お返事ありがとうございました。エラーが発生しています ** strsplit(x、 "\\。"、perl = TRUE)のエラー:文字以外の引数** 現在はファクタレベルなのでas.characterを実行する必要がありますか? – bnjmn
私は** lapply(as.character(data $ IP)、printPadded)**を成功させました。ありがとう。答えを受け取る前に数時間待っています。 – bnjmn
@Benjamin Ah、あなたは要因に注意する必要があります。時には文字ベクトルのように見えることもありますが、整数として扱われることもあります。データをロードする場合、 'read.csv()'と言って、 'stringsAsFactors = FALSE'オプションを探します。あるいは、オプションでこれを設定することもできます。 '?options'を見てください。 FWIW、私は因子としてストリングをロードすることから決して恩恵を受けたことはありません - 必要なときに明示的な因子変換を行うだけです(例えば特定のタイプのモデルでは) – Iterator