2011-09-07 21 views
5

Tại sao stringsAsFactors sử dụng chữ in hoa để hỗ trợ khả năng đọc trong R khi hầu hết các lệnh khác dường như sử dụng . (ví dụ: as.factor)?Tại sao `stringsAsFactors` sử dụng chữ in hoa để đọc được trong R?

Đây có phải là một phong cách riêng hoặc một phần của bộ phận tổ chức cao hơn của các lệnh mà tôi không quen thuộc không?

Có cách nào để dự đoán lệnh nào sẽ sử dụng chữ cái viết hoa và sẽ sử dụng .?

Cảm ơn

+1

Bạn sẽ cần hỏi (các) thành viên R-core đã viết các chức năng đó. Nó không được ghi lại lý do tại sao một số chức năng sử dụng camelCase, một số sử dụng under_scores, và một số sử dụng "." (ngoài phương pháp S3). –

+0

Đôi khi '_' cũng được sử dụng như một dấu tách, chỉ để làm cho nó thậm chí còn khó hiểu hơn. –

+0

Tôi nghĩ rằng nó là đáng nhấn mạnh rằng 'stringsAsFactors' là một ** đối số ** tên và' as.factor() 'là một tên hàm. –

Trả lời

3

Rất nhiều idiosyncrasies phát sinh do sự di sản từ ngôn ngữ S và khả năng tương thích với việc thực hiện trong S-PLUS. Đã có một xu hướng trong những năm gần đây để tránh các chức năng mới với tên bao gồm một . như một dấu tách để tránh nhầm lẫn với phương pháp S3. Điều này đã không bị thay đổi do tính tương thích ngược và mong muốn trung thành với các chức năng từ ngày S/S-PLUS.

_ không còn được dùng làm phương án thay thế cho <-, một số tác giả đã sử dụng nó trong tên hàm; một ví dụ là các gói của Hadley Wickham, nhưng có rất nhiều người khác.

Việc thiếu một tiêu chuẩn nghiêm ngặt tôn trọng có thể gây nhầm lẫn, và chắc chắn thêm vào đường cong học tập, nhưng là một cái gì đó bạn phải sống với.

4

Rõ ràng - không có tiêu chuẩn đã được thiết lập trước khi nó đã quá muộn ;-)

2

Cái gọi là 'camelCase' là một lựa chọn tốt.

Bên cạnh Hadley, một vài đề xuất gạch dưới. Xem ví dụ: Google R Style Guide có nội dung:

Không sử dụng dấu gạch dưới (_) hoặc dấu gạch nối (-) trong số nhận dạng.

Bản thân R không thực thi một kiểu, nhưng (không nói quá) không sử dụng quá nhiều thư viện cốt lõi mới sử dụng dấu chấm làm dấu phân cách vì điều này cũng được sử dụng cho phương pháp S3.

+0

Dấu gạch ngang kém hơn nhiều so với dấu gạch dưới. Sau này là một sự lựa chọn phong cách, các cựu thậm chí không thể được sử dụng mà không cần nhảy qua hoops (như bảo vệ tên biểu tượng với backticks). –

+0

Tôi có thể hiểu không sử dụng '-' vì đó là "hoạt động cú pháp" nhưng việc không sử dụng dấu gạch dưới dường như không hợp lý. (Tôi biết đây không phải là lời khuyên của bạn, nhưng bạn đang lặp lại nó.) Lợi thế mà gạch dưới cung cấp cho tôi là một nhấp đúp trong môi trường chỉnh sửa của tôi chọn tất cả tên có gạch dưới, nhưng bị vỡ trên "." –

+0

Tôi không đồng ý với một trong hai bạn, và không thực sự nói gì về dấu gạch ngang - điều này rõ ràng là ** thực sự ** xấu. Nhưng trong thế giới nhỏ bé của tôi (và, dường như, cũng trong Google) được coi là ác quỷ quá. Và đó là quan điểm của tôi. –

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