R中的ASCII字符到十进制值

时间:2016-12-18 17:30:29

标签: r ascii non-ascii-characters

给定一个单词我需要找到该单词中每个字母的十进制值并将其存储在一个数组中。 我使用strtoi函数来实现这一目标。但后来发现下面两个应该给出相同输出的函数给出了不同的结果。有谁能解释为什么?
第一次尝试

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

第二次尝试

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

16L基础中的srtoi是什么意思?我对十六进制,十六进制,十进制ASCII字符表示相当新。所以请分享一些有关它的信息。

1 个答案:

答案 0 :(得分:1)

仅供参考:

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中完成:

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

如果您只需要/想要整数,也可以as.integer() vs as.numeric()