将原始向量存储为数据框中的单个值

时间:2016-05-10 04:38:12

标签: r binary-data

我需要将一些数据放入二进制格式的数据框中(作为由原始向量表示的单个条目)。这是一个例子:

#Record identifier
idx <- "identifier"

#The numeric data for a single record
aa <- c(5.99, 999, 5.99, 82.93)

#Convert data to double precision binary format
bin.aa <- writeBin(aa, raw(), endian = "little")

print(bin.aa)
[1] f6 28 5c 8f c2 f5 17 40 00 00 00 00 00 38 8f 40 f6 28 5c 8f c2 f5 17 40 ec 51 b8 1e 85 bb 54 40

到目前为止一切顺利。我有我想要的原始载体。现在我想创建一个包含两列和一行的数据框,其中包含(在第1列中)“标识符”和(在第2列中)原始向量bin.aa。不幸的是,我的尝试不起作用:

> df <- data.frame(idx, bin.aa)

> head(df)
         idx bin.aa
1 identifier     f6
2 identifier     28
3 identifier     5c
4 identifier     8f
5 identifier     c2
6 identifier     f5

这肯定不是我想要的 - 我现在有32行,每行包含来自原始向量的单个字节。我知道我可以做我正在尝试的事情,因为我可以做与我在这里尝试相反的事情:即我可以使用readBin()命令将原始向量读入单个数据帧条目。显然,我在这里遗漏了一些东西。

1 个答案:

答案 0 :(得分:3)

您可以尝试:

df <- data.frame(idx, I(list(bin.aa)))

此处需要I运算符,因为list(bin.aa)只是一个元素的列表,默认情况下会在data.frame调用中取消列出。