考虑 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 编写此类内容。我找到的解决方案是将这些列转换为字符串。但是,我如何从文件中读取此内容?是否有某种统一的格式可以用(几乎)任何语言轻松阅读?
最佳答案
您可以按如下方式创建制表符分隔的文件:
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]}]
关于python - 处理列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036133/