考虑一下R:
中data.table包的一个例子DT = data.table(ID = c("b","b","b","a","a","c"), a = 1:6, b = 7:12, c=13:18)
DT = DT[, .(A=list(a), B=list(b), C=list(c)), by=ID]
DT
ID A B C
1: b 1,2,3 7,8,9 13,14,15
2: a 4,5 10,11 16,17
3: c 6 12 18
在此之后我想将此文件写入文件以共享此结构。但是,由于 list 类型,它禁止使用write.csv编写此类内容。我找到的解决方案是将这些列转换为 string 。但是,我如何从文件中读取此内容?是否有一些统一的格式可以(几乎)用任何语言读取而不需要太多努力?
答案 0 :(得分:2)
您可以按如下方式创建制表符分隔文件:
DT2 <- DT[, .(A=toString(a), B=toString(b), C=toString(c)), by=ID]
write.table(DT2, "dt2.txt", sep="\t", row.names = FALSE)
大多数语言都应该是可读的。
当您想要保留列表时,按照@ TigerhawkT3的建议转换为JSON将是最佳选择:
DT3 <- DT[, .(A=list(a), B=list(b), C=list(c)), by=ID]
library(jsonlite)
toJSON(DT3)
给出:
[{"ID":"b","A":[1,2,3],"B":[7,8,9],"C":[13,14,15]},{"ID":"a","A":[4,5],"B":[10,11],"C":[16,17]},{"ID":"c","A":[6],"B":[12],"C":[18]}]