※ 引述《pp61022 (fight)》之铭言:
: [问题类型]:
: 程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
: [软件熟悉度]:
: 请把以下不需要的部份删除
: 入门(写过其他程式,只是对语法不熟悉)
: [问题叙述]:
: 请简略描述你所要做的事情,或是这个程式的目的
: 我在kaggle看到一个dataset,
: https://www.kaggle.com/roamresearch/prescriptionbasedprediction
: 想要把他下载下来转成Rdata档,
: 但是他是JSONL的格式,但好像也算是JSON格式?!
: (网站说明:The file is in JSONL format (one JSON record per line))
: 有搜寻一些R读取JSON格式的方法, 但还是没办法出来,
: 想请教版友们该如何修改才能正常读取这种格式的dataset
: (我刚学R, 对于某些程式码还不熟, 不清楚应该如何debug)
: [程式范例]:
: 张贴能够重现错误的程式码,可以帮助版友更快的帮你解决问题
: http://ideone.com/PL9XJq
: 读到CleanData<-do.call("rbind", person)出现warning message,但我不知道该如何修
: 正
:
: Warning message:
: In rbind(provider_variables = list(settlement_type = "non-urban", :
: number of columns of result is not a multiple of vector length (arg 1)
: [环境叙述]:
: 请提供 sessionInfo() 的输出结果,
: 里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
: 让版友更容易找出错误
: R version 3.2.3 (2015-12-10)
: Platform: x86_64-w64-mingw32/x64 (64-bit)
: Running under: Windows 7 x64 (build 7601) Service Pack 1
: locale:
: [1] LC_COLLATE=Chinese (Traditional)_Taiwan.950
: [2] LC_CTYPE=Chinese (Traditional)_Taiwan.950
: [3] LC_MONETARY=Chinese (Traditional)_Taiwan.950
: [4] LC_NUMERIC=C
: [5] LC_TIME=Chinese (Traditional)_Taiwan.950
: attached base packages:
: [1] stats graphics grDevices utils datasets methods
: [7] base
: other attached packages:
: [1] rjson_0.2.15
: loaded via a namespace (and not attached):
: [1] tools_3.2.3
: [关键字]:
: 选择性,也许未来有用
: 我有参考https://goo.gl/EEdGxP 这个网站的写法
试试看ndjson这个套件吧
他可以正确解析jsonl
并且速度也不慢,以下是测试code
library(ndjson)
jsonlFileName <- unzip("prescriptionbasedprediction.zip", list = TRUE)$Name
unzip("prescriptionbasedprediction.zip")
df <- stream_in(jsonlFileName)
用ndjson是目前看到最快的方法XDD
ndjson是八月新出的套件...
玩一下觉得还不错XDD
而且这资料怎么那么大,吃掉我快10G的内存= =....
读要好久,用readLines + sapply + fromJSON的时间超久... 久到完全不想等Orz
补充一点,ndjson读进来是data.table