如何将 R 中的十六进制数分成相等的部分并交换它们?
How do you split a hexadecimal number in R to equal parts and swap them?
我正在从该设备获取十六进制格式的数据。我们以
为例
value = CB0F0B00CB0F0C00CB0F0F00... #(it keeps going)
我打算做的是取前 4 个数字 (CB0F
) 然后保留接下来的 4 个数字 (0B00
- 我想稍后使用它们) 然后取下 4 个number (CB0F
) 并且它一直在继续。所以基本上我想创建一个数据框,每 4 个数字在 4 个数字之后。
我如何在 R 中执行此操作?
在我得到 CB0F
之后,我也需要将它们交换为 0FCB
。
我认为你是这个意思,
value <- "CB0F0B00CB0F0C00CB0F0F00"
x <- gsub("(.{2})(.{2})", "\2\1", value)
substring(x, seq(1,nchar(x),4), seq(4,nchar(x),4))
# [1] "0FCB" "000B" "0FCB" "000C" "0FCB" "000F"\
I was able to get [1] 4043 11 4043 12 4043 15 as output. Now I want to save it as a data frame. 4043, 4043, 4043 as one column and 11, 12, 15 as one column. How do i do that?
x <- c(4043 ,11, 4043 ,12, 4043 ,15)
data.frame(num1=x[seq(1, length(x), 2)], num2=x[seq(2, length(x), 2)])
# num1 num2
# 1 4043 11
# 2 4043 12
# 3 4043 15
我正在从该设备获取十六进制格式的数据。我们以
为例value = CB0F0B00CB0F0C00CB0F0F00... #(it keeps going)
我打算做的是取前 4 个数字 (CB0F
) 然后保留接下来的 4 个数字 (0B00
- 我想稍后使用它们) 然后取下 4 个number (CB0F
) 并且它一直在继续。所以基本上我想创建一个数据框,每 4 个数字在 4 个数字之后。
我如何在 R 中执行此操作?
在我得到 CB0F
之后,我也需要将它们交换为 0FCB
。
我认为你是这个意思,
value <- "CB0F0B00CB0F0C00CB0F0F00"
x <- gsub("(.{2})(.{2})", "\2\1", value)
substring(x, seq(1,nchar(x),4), seq(4,nchar(x),4))
# [1] "0FCB" "000B" "0FCB" "000C" "0FCB" "000F"\
I was able to get [1] 4043 11 4043 12 4043 15 as output. Now I want to save it as a data frame. 4043, 4043, 4043 as one column and 11, 12, 15 as one column. How do i do that?
x <- c(4043 ,11, 4043 ,12, 4043 ,15)
data.frame(num1=x[seq(1, length(x), 2)], num2=x[seq(2, length(x), 2)])
# num1 num2
# 1 4043 11
# 2 4043 12
# 3 4043 15