请问有人帮助我如何将4字节十六进制格式转换为R中的浮点数?例如,我想将"aec7a042"
转移到80.39
。经过大量搜索后我在R中找不到任何东西给我这个转换!
C函数是BitConverter。 ToSingle。但我需要在R中做同样的事情吗?
有人可以帮帮我吗?
答案 0 :(得分:3)
您可以使用readBin
读取此值。看来你有一个4字节的有符号浮点值。您可以阅读:
readBin("aec7a042", "double", size=4)
# [1] 80.39
如果这在您的R版本中无效,请尝试
x <- "aec7a042"
readBin(as.raw(strtoi(substring(x, (step<-seq(1, nchar(x), by=2)), step+1), 16)), "double",n=1,size=4)
# or
readBin(as.raw(strtoi(apply(matrix(strsplit(x,"")[[1]],2),2,paste, collapse=""), 16)), "double", size=4)
这里我们更明确地将字符串转换为字节的原始向量。