将十六进制列转换为 R 中的文本
Convert column of Hex into Text in R
我是R新手,请见谅。我通过 odbc 从 Access 数据库导入了 table:
df <- select(dbReadTable(accdb_path, name ="accdb_table"),"Col_1","Col_2","Col_3")
对于
> typeof(df$Col_3)
我明白了
[1] "list"
使用库(dplyr.teradata)。我将 blob 转换为字符串(这里可能已经在错误的路径上):
df$Hex <- blob_to_string(df$Col_3)
现在以一个充满十六进制的列 (typeof = character) 结尾:
df[1,4]
[1] 49206765742061206c6f74206f662048657820616e642068617665207468652069737375652077697468207370656369616c2063687261637465727320696e204765726d616e206c616e6775616765206c696b65206e2b4150592d7
我的问题是,如何将 Col_3 中的每个值转换为正确的文本(如果可能,关于 ü、ö、ä 和 ß 等德语特殊字符)。
我知道这个解决方案 ,但无法正确应用:
df$Text <- rawToChar(as.raw(strtoi(df$Hex, 16L)))
Fehler in rawToChar(as.raw(strtoi(BinData$Hex, 16L))) :
Zeichenkette '[=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=]\
谢谢!
如果我理解正确的话,你想做什么来将函数应用于列表的每个元素,以便它 returns 一个字符向量(你可以添加到数据框,如果你希望如此)。
这可以通过 purrr
系列函数轻松实现。以下获取每个元素 df$Col_3
并运行函数(每个元素都是给定函数中的 x)
purrr::map_chr(.x = df$Col_3,
.f = function(x) {rawToChar(as.raw(strtoi(x,16L)))})
您可能应该使用基本 R 函数实现相同的效果,例如 lapply()
后跟 unlist()
或 sapply()
,但使用 purrr
通常更容易找到不一致的结果.
我是R新手,请见谅。我通过 odbc 从 Access 数据库导入了 table:
df <- select(dbReadTable(accdb_path, name ="accdb_table"),"Col_1","Col_2","Col_3")
对于
> typeof(df$Col_3)
我明白了
[1] "list"
使用库(dplyr.teradata)。我将 blob 转换为字符串(这里可能已经在错误的路径上):
df$Hex <- blob_to_string(df$Col_3)
现在以一个充满十六进制的列 (typeof = character) 结尾:
df[1,4]
[1] 49206765742061206c6f74206f662048657820616e642068617665207468652069737375652077697468207370656369616c2063687261637465727320696e204765726d616e206c616e6775616765206c696b65206e2b4150592d7
我的问题是,如何将 Col_3 中的每个值转换为正确的文本(如果可能,关于 ü、ö、ä 和 ß 等德语特殊字符)。
我知道这个解决方案
df$Text <- rawToChar(as.raw(strtoi(df$Hex, 16L)))
Fehler in rawToChar(as.raw(strtoi(BinData$Hex, 16L))) :
Zeichenkette '[=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=]\
谢谢!
如果我理解正确的话,你想做什么来将函数应用于列表的每个元素,以便它 returns 一个字符向量(你可以添加到数据框,如果你希望如此)。
这可以通过 purrr
系列函数轻松实现。以下获取每个元素 df$Col_3
并运行函数(每个元素都是给定函数中的 x)
purrr::map_chr(.x = df$Col_3,
.f = function(x) {rawToChar(as.raw(strtoi(x,16L)))})
您可能应该使用基本 R 函数实现相同的效果,例如 lapply()
后跟 unlist()
或 sapply()
,但使用 purrr
通常更容易找到不一致的结果.