将数据帧转换为 R 中的字节

Convert a dataframe to bytes in R

我在 R 中有一个数据框,例如

Col1    Col2    Col3   Col4              
Male    12345    76     abc           
Female  545454   105    def   

我如何将数据转换为 csv 格式(只有 cols 和 rows ,没有元数据),然后转换为字节,我需要将其转换为 base64 编码的字符串并传递给 rest 端点?

此示例的 base64 编码字符串应为

Q29sMSAgLCAgQ29sMiAgICwgQ29sMyAgLCBDb2w0ICAgICAgICAgICAgICANCk1hbGUgICwgMTIzNDUgICAsNzYgICAgICwgYWJjICAgICAgICAgDQpGZW1hbGUsIDU0NTQ1NCAgLDEwNSAgICAsIGRlZg==

所以base64字符串解码后的数据是这样的:-

Col1  ,  Col2   , Col3  , Col4              
Male  , 12345   ,76     , abc           
Female, 545454  ,105    , def

我尝试使用序列化,但它序列化了包括元数据在内的所有内容。我也试过 writeBin 但这只适用于向量

有什么想法吗?

您检查过 RCurl 函数吗?

df <- read.table(textConnection("Col1    Col2    Col3   Col4              
                                     Male    12345    76     abc           
                                     Female  545454   105    def"), header=T)

header_row <- paste(names(df), collapse=", ")
tab <- apply(df, 1, function(x)paste(x, collapse=", "))
text <- paste(c(header_row, tab), collapse="\n")
> text
[1] "Col1, Col2, Col3, Col4\nMale,  12345,  76, abc\nFemale, 545454, 105, def"
x <- base64(text)
> x
[1] "Q29sMSwgQ29sMiwgQ29sMywgQ29sNApNYWxlLCAgMTIzNDUsICA3NiwgYWJjCkZlbWFsZSwgNTQ1NDU0LCAxMDUsIGRlZg=="
attr(,"class")
[1] "base64"
> base64Decode(x)
[1] "Col1, Col2, Col3, Col4\nMale,  12345,  76, abc\nFemale, 545454, 105, def"