31

パッケージ.hex.to.decで呼び出される関数があることがわかりました。fBasics

私がするとき.hex.to.dec(a)、それは動作します。

samp_columnそのような値で構成される列を持つデータ フレームがあります。

a373, 115c6, a373, 115c6, 176b3

すると.hex.to.dec(samp_column)、次のエラーが表示されます。

「nchar(b) のエラー: 'nchar()' には文字ベクトルが必要です」

すると.hex.to.dec(as.character(samp_column))、次のエラーが表示されます。

「rep(base.out, 1 + ceiling(log(max(number), base = base.out))) のエラー: 無効な 'times' 引数」

これを行う最良の方法は何ですか?

4

5 に答える 5

43

base::strtoi16 進数の文字ベクトルを整数に変換するために使用します。

strtoi(c("0xff", "077", "123"))
#[1] 255  63 123
于 2013-10-21T18:48:16.767 に答える
8

@ user4221472 の回答で述べたようにstrtoi()、2^31 より大きい整数でオーバーフローします。

これを回避する最も簡単な方法は、 を使用することas.numeric()です。

V <- c(0xa373, 0x115c6, 0x176b3, 0x25cf40000)

as.numeric(V)
#[1]       41843       71110       95923 10149429248
于 2018-09-01T11:19:57.147 に答える