Tôi đang tạo các bảng tần số từ với R và định dạng đầu ra ưu tiên sẽ là một tệp JSON. sth như { "từ": "chó", "tần suất": 12 } Có cách nào để lưu bảng trực tiếp sang định dạng này không? Tôi đã sử dụng hàm write.csv() và chuyển đổi kết quả đầu ra thành JSON nhưng điều này rất phức tạp và tốn thời gian.Có thể ghi một bảng vào một tệp ở định dạng JSON trong R không?
Trả lời
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}
hoặc thậm chí tốt hơn:
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}
Sau đó xác nhận nó với http://www.jsonlint.com/ để có được định dạng khá. Nếu bạn có bảng đa chiều, bạn sẽ phải làm việc nó ra một chút ...
EDIT:
Oh, bây giờ tôi thấy, bạn muốn những đặc điểm dữ liệu chìm-ed vào một tập tin JSON. Không sao cả, chỉ cần cung cấp cho chúng tôi dữ liệu mẫu và tôi sẽ làm việc trên một đoạn mã một chút. Thực tế, bạn cần phải thực hiện các dữ liệu thành định dạng mong muốn, do đó chuyển đổi nó thành JSON. list
là đủ. Cho tôi một chút, tôi sẽ cập nhật câu trả lời của tôi.
EDIT # 2: Vâng, thời gian là tương đối ... đó là một phổ biến kiến thức ... Ở đây bạn đi:
(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
Nếu dtf
là một khung dữ liệu đơn giản, vâng, data.frame, nếu nó không phải, ép buộc nó! câu chuyện dài ngắn, bạn có thể làm:
toJSON(as.data.frame(t(dtf)))
## [1] "{\"V1\":{\"word\":\"cat\",\"frequency\":\"12\"},\"V2\":{\"word\":\"dog\",\"frequency\":\"32\"},\"V3\":{\"word\":\"mouse\",\"frequency\":\"18\"}}"
tôi mặc dù tôi sẽ cần một số melt
với thế này, nhưng đơn giản t
đã làm các trick. Bây giờ, bạn chỉ cần xử lý các tên cột sau khi chuyển đổi data.frame. t
coerces data.frames thành ma trận, vì vậy bạn cần phải chuyển đổi nó trở lại data.frame. Tôi đã sử dụng as.data.frame
, nhưng bạn cũng có thể sử dụng toJSON(data.frame(t(dtf)))
- bạn sẽ nhận được X thay vì V làm tên biến. Ngoài ra, bạn có thể sử dụng regexp để làm sạch tệp JSON (nếu cần), nhưng đó là một thực hành tệ hại, hãy thử làm việc đó bằng cách chuẩn bị data.frame.
Tôi hy vọng điều này giúp một chút ...
Cảm ơn bạn rất nhiều! Câu trả lời của bạn đã giúp tôi: D – txxwq
Bạn có thể sử dụng gói rjson.
RJSONIO là một gói phần mềm "cho phép chuyển đổi đến và đi từ dữ liệu ở định dạng Javascript ký hiệu đối tượng (JSON)". Bạn có thể sử dụng nó để xuất đối tượng của mình dưới dạng tệp JSON.
library(RJSONIO)
writeLines(toJSON(anobject), "afile.JSON")
Tôi khuyên bạn nên viết một số lời giải thích cùng với mã để giúp OP hiểu câu trả lời tốt hơn – Joe
@Joe: bạn –
Không thực sự - chỉ một vài từ là tốt (như @ cafe876 được thêm vào, cảm ơn vì điều đó!) Mã thuần túy không có ý kiến gì cả Nó cũng không phải là hữu ích, nó cũng là một câu trả lời ba năm sau câu hỏi ban đầu, có nghĩa là tôi mong đợi nhiều hơn một chút từ câu trả lời (một câu hỏi xấu từ 3 năm trước đây chỉ nên bỏ qua). – Joe
Những ngày này tôi thường sử dụng gói jsonlite.
library("jsonlite")
toJSON(mydatatable, pretty = TRUE)
Điều này sẽ chuyển bảng dữ liệu thành mảng JSON của đối tượng cặp khóa/giá trị trực tiếp.
- 1. Tôi có thể ghi dữ liệu JSON vào một tệp trong iOS/Objective-C không?
- 2. CakePHP không thể ghi vào một số tệp nhất định
- 3. Tôi có thể có một trường tệp ở dạng đầu vào không?
- 4. Làm thế nào để hiển thị một mảng json ở định dạng bảng?
- 5. Git ghi bảng định dạng
- 6. Cách gửi UIImage ở định dạng JSON, bằng cách điền vào một NSDictionary
- 7. Làm thế nào để đọc một tệp văn bản vào R khi dữ liệu không có trong bảng
- 8. Dữ liệu POST ở định dạng JSON
- 9. cách thêm mục vào mảng định dạng tệp json
- 10. có một trình định dạng nhiều định dạng trong Python không?
- 11. Nodejs viết json vào một tập tin
- 12. Xuất dendrogram dưới dạng bảng trong R
- 13. JSONKit: tạo một chuỗi có định dạng json
- 14. Nhiều luồng có thể ghi dữ liệu vào một tệp cùng lúc không?
- 15. Tránh nội dung của một tệp hiện có được ghi đè khi ghi vào một tệp
- 16. Lấy dữ liệu Google Map KML ở định dạng JSON
- 17. Có thể/quyền sử dụng nhiều @ Html.AntiForgeryToken() ở 2 dạng khác nhau trong một trang không?
- 18. Cách ghi nhật ký $ ('h1') vào bảng điều khiển web dưới dạng một mảng trong jQuery?
- 19. Hiển thị TraMineR (R) dendrograms ở định dạng văn bản/bảng
- 20. Đọc và ghi vào một tệp trong khi giữ khóa
- 21. các tệp zcat ở định dạng gzip
- 22. Kiểm soát định dạng số ở trục của ô R
- 23. Làm cách nào để ghi dữ liệu vào định dạng csv dưới dạng chuỗi (không phải tệp)?
- 24. Viết từ R vào mẫu trong excel trong khi vẫn giữ nguyên định dạng
- 25. Liệu python logging.handlers.RotatingFileHandler có cho phép tạo một tệp nhật ký có thể ghi nhóm không?
- 26. Xuất ra một vector trong R theo cùng định dạng được sử dụng để nhập nó vào R
- 27. bạn có thể tạo/ghi/nối thêm một chuỗi vào một tệp trong một dòng trong Ruby
- 28. Có an toàn để tạo một FileInfo trên một tệp hiện đang được ghi vào không?
- 29. Trong Oracle, có thể "chèn" một cột vào một bảng không?
- 30. Định dạng JSON trong Perl
install.packages ("vận may"); yêu cầu (vận may); tài sản (mà = "Evelyn") – fmark