Khi đọc tệp, hàm read.table
sử dụng type.convert
để phân biệt giữa các cột logic, số nguyên, số, phức hoặc yếu tố và lưu trữ chúng tương ứng.tự động phát hiện các cột ngày khi đọc một tệp vào một data.frame
Tôi muốn thêm ngày vào danh sách kết hợp để các cột chứa ngày có thể tự động được nhận dạng và phân tích cú pháp thành các đối tượng Date
. Chỉ một vài định dạng ngày phải được nhận dạng, ví dụ:
date.formats <- c("%m/%d/%Y", "%Y/%m/%d")
Dưới đây là một ví dụ:
fh <- textConnection(
"num char date-format1 date-format2 not-all-dates not-same-formats
10 a 1/1/2013 2013/01/01 2013/01/01 1/1/2013
20 b 2/1/2013 2013/02/01 a 2013/02/01
30 c 3/1/2013 NA b 3/1/2013"
)
Và đầu ra của
dat <- my.read.table(fh, header = TRUE, stringsAsFactors = FALSE,
date.formats = date.formats)
sapply(dat, class)
sẽ cung cấp cho:
num => numeric
char => character
date-format1 => Date
date-format2 => Date
not-all-dates => character
not-same-formats => character # not a typo: date format must be consistent
Trước khi tôi đi và thực hiện nó từ đầu, là một cái gì đó như thế này đã có sẵn trong một gói? Hoặc có thể ai đó đã cho nó một vết nứt (hoặc sẽ) và sẵn sàng chia sẻ mã của mình ở đây? Cảm ơn bạn.
Liên quan đến [Ấn định định dạng ngày cho lập luận colClasses trong read.table/read.csv] (http://stackoverflow.com/q/13022299/271616). –
Có liên quan, có, và nó có thể hữu ích cho những người nghiên cứu chủ đề này. Tuy nhiên, trong trường hợp của tôi, tôi cần các cột ngày được tự động phát hiện. – flodel
bởi "cùng một định dạng" là lệnh "định dạng chính xác" hoặc "ymd" quan trọng (ví dụ: '2013/01/01' và '2013-01-01' trong cùng một cột có được không?) – mnel