47 Các lỗi thường gặp

Chương này bao gồm một danh sách các lỗi phổ biến và các giải pháp đề xuất để khắc phục chúng.

47.1 Phiên giải thông báo lỗi

Các lỗi trong R đôi khi có thể khó hiểu, vì vậy Google là bạn của bạn. Tìm kiếm thông báo lỗi với “R” và tìm các bài đăng gần đây trong StackExchange.com, stackoverflow.com, community.rstudio.com, twitter (#rstats), và các diễn đàn khác được lập trình viên sử dụng để gửi câu hỏi và câu trả lời. Hãy cố gắng tìm các bài đăng gần đây đã giải quyết các vấn đề tương tự.

Nếu sau nhiều lần tìm kiếm, bạn không thể tìm thấy câu trả lời cho vấn đề của mình, hãy cân nhắc tạo một ví dụ có thể tái tạo (“reprex”) và tự đăng câu hỏi. Xem chương Nhờ sự trợ giúp để biết các mẹo về cách tạo và đăng một ví dụ có thể tái tạo lên diễn đàn.

47.2 Các lỗi thường gặp

Dưới đây, chúng tôi liệt kê một số lỗi phổ biến và các giải thích/giải pháp tiềm năng. Một số trong số này được mượn từ Noam Ross, người đã phân tích các bài đăng phổ biến nhất trên diễn đàn Stack Overflow về các thông báo lỗi trên R (xem bài phân tích tại đây)

Lỗi đánh máy

Error: unexpected symbol in:
"  geom_histogram(stat = "identity")+
  tidyquant::geom_ma(n=7, size = 2, color = "red" lty"

Nếu bạn thấy lỗi “unexpected symbol”, kiểm tra xem có thiếu dấu phẩy không

Các lỗi liên quan đến Package

could not find function "x"...

Điều này có thể có nghĩa là bạn đã nhập sai tên hàm hoặc quên cài đặt hoặc gọi một package.

Error in select(data, var) : unused argument (var)

Bạn nghĩ rằng bạn đang sử dụng dplyr::select() nhưng thực tế là hàm select() đã bị đè bởi hàm MASS::select() - hãy ghi rõ dplyr:: hoặc sắp xếp lại thứ tự các package được gọi để dplyr đứng sau tất cả các package khác.

Các lỗi hàm bị đè phổ biến khác bắt nguồn từ: plyr::summarise()stats::filter(). Cân nhắc sử dụng conflicted package.

Error in install.packages : ERROR: failed to lock directory ‘C:\Users\Name\Documents\R\win-library\4.0’ for modifying
Try removing ‘C:\Users\Name\Documents\R\win-library\4.0/00LOCK’

Nếu bạn gặp lỗi thông báo rằng bạn cần xóa tệp “00LOCK”, go to your “R” library in your computer directory (e.g. R/win-library/) and look for a folder called “00LOCK”. Delete this manually, and try installing the package again. A previous install process was probably interrupted, which led to this.

Các lỗi liên quan tới đối tượng

No such file or directory:

Nếu bạn gặp lỗi như thế này khi cố gắng xuất hoặc nhập: Hãy kiểm tra lỗi chính tả của tệp và đường dẫn tệp và nếu đường dẫn chứa dấu gạch chéo, hãy đảm bảo rằng bạn đang dùng dấu gạch chéo xuôi / chứ không phải dấu gạch chéo ngược \. Ngoài ra, hãy đảm bảo rằng bạn đã sử dụng đúng phần mở rộng tệp (ví dụ: .csv, .xlsx).

object 'x' not found 

Điều này có nghĩa là một đối tượng bạn đang tham chiếu không tồn tại. Có lẽ code trên đã không chạy đúng cách?

Error in 'x': subscript out of bounds

Điều này có nghĩa là bạn đã cố gắng truy cập vào thứ gì đó (một phần tử của vectơ hoặc danh sách) không có ở đó.

Các lỗi liên quan tới cú pháp hàm

# ran recode without re-stating the x variable in mutate(x = recode(x, OLD = NEW)
Error: Problem with `mutate()` input `hospital`.
x argument ".x" is missing, with no default
i Input `hospital` is `recode(...)`.

Lỗi bên trên (argument .x is missing, with no default) thường gặp với hàm mutate() nếu bạn đang cung cấp một hàm như recode() hoặc replace_na() trong đó nó yêu cầu bạn cung cấp tên cột làm đối số đầu tiên. Điều này rất dễ quên.

Các lỗi logic

Error in if

Điều này có thể có nghĩa là một mệnh đề if đã được áp dụng cho một cái gì đó không phải là TRUE hoặc FALSE.

Các lỗi liên quan tới Factor

#Tried to add a value ("Missing") to a factor (with replace_na operating on a factor)
Problem with `mutate()` input `age_cat`.
i invalid factor level, NA generated
i Input `age_cat` is `replace_na(age_cat, "Missing")`.invalid factor level, NA generated

Nếu bạn nhìn thấy lỗi liên quan tới thứ bậc kiểu factor không hợp lệ, có thể bạn đang có một cột kiểu Factor(chứa các thứ bậc đã được xác định) và bạn đang cố gắng thêm một giá trị mới vào nó. Chuyển nó thành kiểu ký tự trước khi thêm giá trị mới.

Lỗi khi vẽ biểu đồ

Error: Insufficient values in manual scale. 3 needed but only 2 provided. Đây có thể là lỗi khi bạn vẽ biểu đồ bằng ggplot, sử dụng scale_fill_manual() values = c(“orange”, “purple”), trong đó bạn chưa cung cấp đủ số lượng màu cho hàm. Nếu cột này dạng factor, hãy cân nhắc liệu NA có phải là một bậc của factor hay không.

Can't add x object

Bạn có thể thừa dấu + ở cuối lệnh ggplot mà bạn cần xóa.

Lỗi R Markdown

Nếu thông báo lỗi là Error in options[[sprintf("fig.%s", i)]], kiểm tra xem các tùy chọn của knitr ở đầu mỗi đoạn code có sử dụng chính xác out.width = hoặc out.height =không phải fig.width=fig.height= hay không.

Tổng hợp

Cân nhắc liệu bạn có đã sắp xếp lại các hàm đã được pipe trong package dplyr và đã không thay thế một pipe ở giữa, hoặc đã không xóa một pipe ở cuối sau khi sắp xếp lại.

47.3 Nguồn

Đây là một bài đăng trên blog khác liệt kê Các lỗi lập trình R phổ biến mà người mới bắt đầu gặp phải