2015-04-29 38 views
5

khung dữ liệu của tôi có một cột A với chuỗi dưới dạng nhân vậtký tự chuyển đổi sang ngày khi sử dụng write.csv

> df$A 
[1] "2-60", "2-61", "2-62", "2-63" etc 

tôi lưu bảng bằng cách sử dụng write.csv, nhưng khi tôi mở nó với Excel cột A xuất hiện được định dạng là ngày:

Feb-60 
Feb-61 
Feb-62 
Feb-63 
etc 

Bất kỳ ai cũng biết tôi có thể làm gì để tránh điều này?

Tôi đã chỉnh sửa đối số của write.csv nhưng không có gì hiệu quả và dường như tôi không thể tìm thấy ví dụ trong Stack Overflow giúp giải quyết vấn đề này.

+1

Vui lòng hiển thị mã bạn đã sử dụng để ghi tệp –

+3

Có vẻ như Excel đang thực hiện chuyển đổi, chứ không phải R. – nrussell

+0

'write.csv (df, file =" analysis.csv ", quote = TRUE)' Tôi nghi ngờ nó Lỗi của Excel, nhưng tôi đã hy vọng làm điều gì đó trong R vì vậy Excel không làm điều này. – carlite71

Trả lời

1

Một giải pháp khác - hơi tẻ nhạt, Sử dụng nhập tệp văn bản trong Excel, bấm qua các hộp thoại và trong bước 3/3 của trình hướng dẫn nhập văn bản, bạn sẽ có tùy chọn đặt định dạng dữ liệu cột, sử dụng "văn bản "cho cột có" 2-60 "," 2-61 "," 2-62 "," 2-63 ". Nếu bạn sử dụng General (mặc định), Excel sẽ cố gắng thông minh và chuyển đổi câu trả lời cho bạn.

+0

Cảm ơn, đây là giải pháp phù hợp nhất với tôi, vì tôi cần một đầu ra trong Excel. – carlite71

7

Như đã nói trong các nhận xét, đây là một hành vi nổi trội, không phải của R. Và không thể hủy kích hoạt:

Microsoft Excel được lập trình sẵn để giúp bạn nhập ngày dễ dàng hơn. Đối với ví dụ , thay đổi 12/2 thành ngày 2 tháng 12. Điều này rất bực bội khi bạn nhập nội dung nào đó mà bạn không muốn thay đổi thành một ngày. Rất tiếc, không có cách nào để tắt tính năng này. Nhưng có nhiều cách để vượt qua nó.

Microsoft Office Article

Cách gợi ý đầu tiên xung quanh nó theo bài viết là không hữu ích, vì nó dựa trên việc thay đổi định dạng tế bào, nhưng đó là quá muộn khi bạn mở tệp .csv trong excel (nó đã được chuyển đổi thành một số nguyên đại diện cho ngày tháng).

Ở đó, là tuy nhiên, một mẹo hữu ích:

Nếu bạn chỉ có một vài con số để nhập, bạn có thể ngăn chặn Excel từ thay đổi chúng vào ngày bằng cách nhập:

  • Một dấu nháy đơn (') trước khi bạn nhập một số, chẳng hạn như '11 -53 hoặc' 1/47. Dấu nháy đơn không được hiển thị trong ô sau khi bạn nhấn Nhập.

Vì vậy, bạn có thể làm cho việc hiển thị dữ liệu như ban đầu bằng cách sử dụng

vec <- c("2-60", "2-61", "2-62", "2-63") 
vec <- paste0("'", vec) 

Chỉ cần nhớ các giá trị vẫn sẽ có dấu nháy đơn nếu bạn đọc chúng một lần nữa trong R, vì vậy bạn có thể phải sử dụng

vec <- sub("'", "", vec) 

Điều này có thể không lý tưởng nhưng ít nhất nó hoạt động.

Một giải pháp thay thế là bao bọc văn bản trong =" ", dưới dạng công thức excel, nhưng có cùng kết quả cuối cùng và sử dụng nhiều ký tự hơn.

+8

Ai là thiên tài trong nhóm Excel, người đã đưa ra quyết định thiết kế không bắt buộc này nên được tát lên bên đầu. – thelatemail

+1

Điều thú vị là thay vì đơn giản hóa việc tạo một hộp kiểm để tắt nó, họ viết một bài báo nói rằng nó có thể rất bực bội và đưa ra một số ý tưởng hữu ích * nếu bạn chỉ có một vài số để nhập *. – Molx

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