Я новичок в R и взволнован обо всех возможностях управления данными и презентации. На самом деле у меня есть проблемы и не нашел решения:hex2bin в фрейме данных
Я построил кадр данных с:
require(BMS)
n = c(1, 2, 3, 4, 5, 6, 7, 8)
s = c("55aa55aa", "aa55aa55", "12345678", "9ABCDEF0", "55aa55aa", "aa55aa55", "12345678", "9ABCDEF0")
df = data.frame(n, s)
df$s <- as.character(df$s)
df
# n s
# 1 1 55aa55aa
# 2 2 aa55aa55
# 3 3 12345678
# 4 4 9ABCDEF0
# 5 5 55aa55aa
# 6 6 aa55aa55
# 7 7 12345678
# 8 8 9ABCDEF0
Колонка s
представляет собой шестнадцатеричное значение 32-битным, которую я хочу добавить в качестве реальных битовой строки в кадр данных как новый столбец sbin
. Это должно выглядеть так далее:
df
# n s sbin
# 1 1 55aa55aa 01010101101010100101010110101010
# 2 2 aa55aa55 10101010010101011010101001010101
# 3 3 12345678 00010010001101000101011001111000
# 4 4 9ABCDEF0 .......
# 5 5 55aa55aa ......
# 6 6 aa55aa55
# 7 7 12345678
# 8 8 9ABCDEF0
Для преобразования Я хотел бы использовать функцию «HEX2BIN» из пакета «BMS».
Я попробовал этот
lapply(df$s, hex2bin)
# [[1]]
# [1] 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0
# [[2]]
# [1] 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1
# [[3]]
# [1] 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0
# .....
, но не получить требуемую мощность.
В конце я хотел бы получить доступ к каждому биту в строках данных. Поэтому я хотел бы получить 32 вектора по 8 бит в этом примере.
Хм вы имеете в виду, как 'mapply (HEX2BIN, ДФ $ s)' или 'do.call (cbind, lapply (ДФ $ s, HEX2BIN))'? Это матрицы, в которых вы можете легко получить доступ к каждой строке («вектор») или к биту (ячейке). – lukeA