2013-10-21 5 views
15

fBasics 패키지에 .hex.to.dec이라는 기능이 있음을 알게되었습니다.16 진수를 십진수로 변환 R

내가 .hex.to.dec(a) 일 때 작동합니다.

"Error in nchar(b) : 'nchar()' requires a character vector"

I가 .hex.to.dec(as.character(samp_column)) 할 때, I이 얻을 : 제가 .hex.to.dec(samp_column) 할 때

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

, 난이 오류 :

는 I는 값으로 이루어진 열 samp_column로 데이터 프레임을 가지고 오류 :

"Error in rep(base.out, 1 + ceiling(log(max(number), base = base.out))) : invalid 'times' argument"

무엇이 될까요? 이것을하는 st 방법? 진수 문자 벡터를 변환하는

+1

strtoi가 수행합니다. 또는 먼 길 :'Rutils :: as.character.binmode' 그리고'as.numeric'을 사용하여 문자에서 숫자로 변환하십시오 :-) –

+3

[형식을 어떻게 지정 하시겠습니까?] (http://stackoverflow.com)/editing-help) 그런 다음 데이터를 포함하는 [재현 가능한 예제 작성 방법] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)을 참조하십시오. – Thomas

+0

Carl 감사합니다! 웬일인지,이 기능은 나의 구글 검색에 나타나지 않았다. 그러나 그것은 정말로 잘 작동하는 것처럼 보인다. :) 건배! –

답변

24

사용 base::strtoi는 정수로 :

strtoi(c("0xff", "077", "123")) 
#[1] 255 63 123 
+5

숫자 기반의 변환은 올바른 도움말 페이지를 찾기가 어려울 수있는 작업 중 하나입니다. 변환 기능은 다양한 이름으로 장소 전체에 흩어져 있습니다. '? hexmode','? as.hexmode' 및'? octmode'도 참조하십시오. –

+0

OK, * now * 누가 짧은 답변을 게시하고 있습니까? :-). 핀볼 찬양을위한 PS thx. –

+0

@CarlWitthoft 하! 좋아, 찍었다. 나는 이것을 최소한의 실행 가능한 예라고 생각하는 것을 선호하지만, 당신이 말했듯이, 그것은 훌륭한 라인 핀볼 마법사입니다. :-) –

8

진수 < 변환하는 간단하고 일반적인 방법이있다 -> "C/C++ 방법"을 사용하여 다른 형식 :

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

sprintf("%d", V) 
#[1] "41843" "71110" "41843" "71110" "95923" 

sprintf("%.2f", V) 
#[1] "41843.00" "71110.00" "41843.00" "71110.00" "95923.00" 

sprintf("%x", V) 
#[1] "a373" "115c6" "a373" "115c6" "176b3" 
1

strtoi()에는 31 비트 제한이 있습니다. 상위 비트가 설정된 16 진수는 NA :

> strtoi('0x7f8cff8b') 
[1] 2139946891 
> strtoi('0x8f8cff8b') 
[1] NA 
+0

이것은 받아 들인 대답에 대한 코멘트 여야합니다. – NoBackingDown

관련 문제