我用R制作词频表,首选的输出格式是JSON文件。就像 { “word”:“狗”, “频率”:12 } 有什么办法可以直接将表格保存为这种格式吗?我一直在使用write.csv()函数并将输出转换为JSON,但这非常复杂且耗时。是否可以在R中以JSON格式将表写入一个文件?
回答
set.seed(1)
(tbl <- table(round(runif(100, 1, 5))))
## 1 2 3 4 5
## 9 24 30 23 14
library(rjson)
sink("json.txt")
cat(toJSON(tbl))
sink()
file.show("json.txt")
## {"1":9,"2":24,"3":30,"4":23,"5":14}
甚至更好:
set.seed(1)
(tab <- table(letters[round(runif(100, 1, 26))]))
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 2 4 3 2 5 4 3 5 3 9 4 7 2 2 2 5 5 5 6 5 3 7 3 2 1
sink("lets.txt")
cat(toJSON(tab))
sink()
file.show("lets.txt")
## {"a":1,"b":2,"c":4,"d":3,"e":2,"f":5,"g":4,"h":3,"i":5,"j":3,"k":9,"l":4,"m":7,"n":2,"o":2,"p":2,"q":5,"r":5,"s":5,"t":6,"u":5,"v":3,"w":7,"x":3,"y":2,"z":1}
然后用http://www.jsonlint.com/验证它变得相当格式。如果你有多维表,你必须解决它有点...
编辑:
哦,现在我明白了,你想要的数据集特性沉-ED的JSON文件。没问题,只要给我们一个样本数据,我会稍微处理一段代码。实际上,您需要将数据转换为理想的格式,然后将其转换为JSON。 list
就足够了。给我一下,我会更新我的答案。
编辑#2: 好了,时间是相对的......这是一个常识......在这里你去:
(dtf <- structure(list(word = structure(1:3, .Label = c("cat", "dog",
"mouse"), class = "factor"), frequency = c(12, 32, 18)), .Names = c("word",
"frequency"), row.names = c(NA, -3L), class = "data.frame"))
## word frequency
## 1 cat 12
## 2 dog 32
## 3 mouse 18
如果dtf
是一个简单的数据帧,是的,data.frame,如果它不是,胁迫它!长话短说,你可以这样做:
toJSON(as.data.frame(t(dtf)))
## [1] "{\"V1\":{\"word\":\"cat\",\"frequency\":\"12\"},\"V2\":{\"word\":\"dog\",\"frequency\":\"32\"},\"V3\":{\"word\":\"mouse\",\"frequency\":\"18\"}}"
不过,我觉得我需要一些melt
与这一个,但简单t
的伎俩。现在,您只需在转置data.frame后处理列名。 t
强制data.frames到矩阵,所以你需要将它转换回data.frame。我使用了as.data.frame
,但您也可以使用toJSON(data.frame(t(dtf)))
- 您将获得X而不是V作为变量名称。或者,您可以使用regexp来清理JSON文件(如果需要),但这是一个糟糕的做法,尝试通过准备data.frame来解决它。
我希望这有助于有点...
非常感谢!你的回答帮了我:D – txxwq 2010-08-31 14:39:32
RJSONIO是一包“允许转换和从以JavaScript对象符号(JSON)格式的数据。”您可以使用它将对象导出为JSON文件。
library(RJSONIO)
writeLines(toJSON(anobject), "afile.JSON")
- 1. 以Json格式写入文件?
- 2. iOS 5:是否可以将一个结构写入plist文件?
- 3. Python - 以表格格式写入文件
- 4. 以json格式将数据写入js文件?
- 5. 将数据写入文本文件以表格的形式
- 6. 可以将BufferedImage写入文件的任何格式吗?
- 7. 是否可以在Silverlight ContentPresenter中嵌入文本格式?
- 8. 是否可以将控件放入另一个控件中?
- 9. 如何检查是否可以将文件写入目录?
- 10. 是否可以编写一个批处理文件在Windows
- 11. 是否可以使用Extjs4将数据写入JSON?
- 12. 是否可以将多个数据类型放入JSON文件中?
- 13. 在Oracle中,是否可以将一列插入表中?
- 14. 是否可以在iPhone中以编程方式将多个PDF文件合并为一个PDF文件?
- 15. 以某种格式写入JSON数据
- 16. 是否可以在Oracle中以表格的形式返回DML(插入,更新)?
- 17. 是否可以在页面布局中格式化一个NumberField?
- 18. 是否可以将整个python输出写入文本或csv文件?
- 19. 是否可以将资源文件放入JAR文件中?
- 20. 是否可以在单个文件中写入和读取多个DataFrame?
- 21. 是否可以将JSON私钥转换为PKCS12格式?
- 22. 是否可以将多个DOM对象写入单个Xml文件?
- 23. 是否可以同时读写文件?
- 24. 是否可以将一个UITableViewController放入一个CollectionViewCell中?
- 25. hadoop/HDFS:是否可以从多个进程写入同一个文件?
- 26. 是否可以使用JAVA从文件中读取/写入位?
- 27. Google表格 - 是否可以使用同一个单元格中的数据在单元格中输入公式?
- 28. 是否可以在IMAPI界面中选择cd写入模式?
- 29. 是否可以在HTML表格中插入表单?
- 30. 是否可以在数据库NeDB中插入整个.json文件?
install.packages(“fortunes”); require(fortunes); fortune(which =“Evelyn”) – fmark 2013-03-09 14:52:58