首页 > 解决方案 > 创建字符十六进制的十进制值

问题描述

使用以下代码,我正在读取一个文本文件并在屏幕上显示一列。

externalData <- read.delim("testdata.txt", header = FALSE, sep = "@")

i = 1;
while(i < 11) {
  appel <- as.character(externalData[i,3,1])
  i = i + 1;
  print(appel)
}

输出如下所示:

我正在尝试将这些值从十六进制转换为十进制。

我尝试了以下方法:

strtoi(c(appel))

但这似乎不起作用,这只删除了第一个和最后一个引号中的引号,并将中间的所有内容设置为 N/A(可能是因为其中有字母)。

标签: r

解决方案


以下是将十六进制(字符)转换为十进制(数字)的 3 种方法。

x <- c("158308", "bb1787", "853f91")

# 1.
strtoi(x, base = 16L)

# 2.
as.integer(as.hexmode(x))

# 3.
as.integer(paste0("0x", x))
# more general edition:
# as.integer(ifelse(!grepl("^0x", x), paste0("0x", x), x))

推荐阅读