2016-12-18 5 views
2

ある単語があると、その単語の各文字の小数点の値を見つけて配列に格納する必要があります。 これを達成するために私はstrtoi関数を使用しました。しかし、後で同じアウトプットを与えると思われる2つの関数の下で見つかったことは、異なる結果をもたらします。なぜ誰かが説明できますか?
第一の試みRのアルファベット文字から十進数への値

> strtoi("d",16L) 
[1] 13 

第二の試み

> strtoi(charToRaw("d"),16L) 
[1] 100 

そしてsrtoiのベースで16Lは何を意味するのでしょうか?私はASCII文字のDec、Hex、Oct表現をかなり新しくしています。だから、それに関するいくつかの情報を共有してください。例示のみの目的のために

+1

* 10より大きいベースの場合、文字列a~z(またはA~Z)は、 '?strtoi'から10~35を表すために使用されます。そして 'charToRaw(" d ")'は64に評価されるので、2番目に 'strtoi(64,16L)'を実行します。なぜあなたは彼らが同じだろうと思うか分かりません。 –

答えて

1

as.numeric(charToRaw(input_str)) 
## [1] 65 108 112 104 97 98 101 116 46 

あなただけ/たい必要がある場合にも、as.numeric()as.integer()を行うことができます:あなたが何をする必要があるか以来

library(purrr) 
library(tibble) 

input_str <- "Alphabet." 

charToRaw(input_str) %>% 
    map_df(~data_frame(letter=rawToChar(.), 
        hex_value=toString(.), 
        decimal_value=as.numeric(.))) 
## # A tibble: 9 × 3 
## letter hex_value decimal_value 
## <chr>  <chr>   <dbl> 
## 1  A  41   65 
## 2  l  6c   108 
## 3  p  70   112 
## 4  h  68   104 
## 5  a  61   97 
## 6  b  62   98 
## 7  e  65   101 
## 8  t  74   116 
## 9  .  2e   46 

がベースR内のすべてを行うことができます整数。

関連する問題