2016-05-20 15 views
8

Sau khi đã cài đặt dữ liệu.table 1.9.7 trong máy tính cửa sổ, tôi có một dữ liệu .table A trong đó một trong các cột của nó là loại Ngày. Tôi muốn xuất từ ​​A đến một CSV tập tin với fwrite nhưng khi tôi chạyLàm thế nào để tránh chuyển đổi ngày thành idate trong R data.table fwrite 1.9.7?

fwrite(A,file="out1.csv") 

các ngày cột được chuyển thành Idate kiểu số nguyên. Tôi cần giữ định dạng ngày vì tệp này sẽ được sử dụng cho một ứng dụng khác, chứ không phải R. Làm cách nào để không có cột Ngày được chuyển thành IDate? Nỗ lực đầu tiên của tôi là sử dụng

A[,theDate:=as.character(theDate)] 

nhưng phải mất khoảng 1000 giây trong dữ liệu hàng 100M. Có cách nào để tránh điều này không?

+4

Vì bạn có 100M hàng, tôi cho rằng bạn có một số ngày lặp lại, do đó, có thể nhanh hơn để làm một cái gì đó như 'A [, theDate: = as.character (theDate [1L]), bởi = theDate]'. 'fwrite' là khá mới, vì vậy tôi đoán việc xử lý ngày tháng này là sự giám sát và họ sẽ chào đón một yêu cầu tính năng để cải thiện nó. – Frank

+2

@Frank Ý tưởng hay. Ngày có trong danh sách dài để làm: [# 1664] (https://github.com/Rdatatable/data.table/issues/1664). Ý tưởng của bạn đã kích hoạt một ý tưởng ... fwrite có thể thực hiện tra cứu nội bộ thay vì chuyển đổi từng ngày một riêng biệt. –

Trả lời

2

Điều này hiện được triển khai và nhanh chóng. Vui lòng cập nhật lên data.table v1.9.8 +. Bạn có thể kiểm soát cách viết ngày với dateTimeAs="ISO"|"squash"|"epoch"|"write.csv". Xem phiên bản hiện tại của fwrite 's manual page here.

+0

Đối số 'dateAs' không còn tồn tại. Sẽ phải quay lại 'write.csv' vì yêu cầu đầu ra của tôi không phải là một trong ba tùy chọn trong đối số' dateTimeAs' mới. – ddunn801

+0

@ ddunn801 Yêu cầu của bạn là gì? Cảm ơn bạn. [Trang hướng dẫn] (https://www.rdocumentation.org/packages/data.table/versions/1.10.4/topics/fwrite) không bao gồm câu "Chúng tôi có thể hỗ trợ một hoặc hai tùy chọn cụ thể hơn nếu cần thiết." –

+0

Một tùy chọn chỉ có ngày đơn giản sẽ hữu ích: một cái gì đó như 2017-02-16 hoặc tương tự. Sau khi chơi xung quanh một chút, trước tiên tôi có thể chuyển đổi ngày thành một trường ký tự và sau đó chuyển đổi nó trở lại sau 'fwrite' tốc độ cao. TLDR: lưu thêm hai tùy chọn cho thứ gì đó phức tạp hơn. Cảm ơn vi đa trả lơi. – ddunn801

Các vấn đề liên quan