# Find libraries
.libPaths() # Your library paths, listed in order that R installs/searches.
# Note: all libraries will be listed, but to install to some (e.g. C:) you
# may need to be running RStudio as an administrator (it won't appear in the
# install packages library drop-down menu)
49 R trên ổ cứng mạng
49.1 Tổng quan
Việc sử dụng R trên một ổ cứng mạng dùng chung tại “công ty” hoặc một nhóm có thể gây ra một số vấn đề phát sinh. Chương này sẽ giới thiệu các phương pháp tiếp cận, các lỗi phổ biến và các đề xuất về cách khắc phục sự cố từ những bài học kinh nghiệm của chúng tôi khi giải quyết các vấn đề này. Chúng bao gồm các mẹo cho các tình huống khó liên quan đến R Markdown.
Sử dụng R trên ổ cứng mạng: Một số nguyên tắc chính
- Bạn phải có quyền truy cập quản trị đối với máy tính của mình. Thiết lập RStudio đặc biệt để chạy với tư cách quản trị viên (run as administrator).
- Hãy lưu các packages trong thư viện trên một ổ cứng vật lý (ví dụ: “C:”). Hạn chế tối đa Sử dụng package thư viện có đường dẫn bắt đầu bằng “\".
- Package rmarkdown không được nằm trong thư viện package “\", vì khi đó nó không thể kết nối với TinyTex hoặc Pandoc.
49.2 RStudio với tư cách quản trị viên
Bạn cần nhấp vào biểu tượng RStudio để mở RStudio, sau đó bấm chuột phải. Tùy thuộc vào máy của bạn, bạn có thể thấy tùy chọn “Run as Administrator”. Nếu không, bạn có thể thấy một tùy chọn để chọn Properties (sau đó sẽ xuất hiện một cửa sổ có tùy chọn “Compatibility” và bạn có thể chọn hộp kiểm “Run as Administrator”).
49.3 Các lệnh hữu ích
Dưới đây là một số lệnh hữu ích trong việc khắc phục sự cố khi sử dụng R trên ổ đĩa mạng.
Bạn có thể trả về (các) đường dẫn đến các thư thư mục lưu trữ package mà R đang sử dụng. Chúng sẽ được liệt kê theo thứ tự mà R đang sử dụng để cài đặt/tải/tìm kiếm các packages. Vì vậy, nếu bạn muốn R sử dụng một thư viện mặc định khác, bạn có thể chuyển đổi thứ tự của các đường dẫn này (xem bên dưới).
Bạn có thể muốn chuyển đổi thứ tự của các thư viện package được sử dụng bởi R. Ví dụ: nếu R đang chọn một vị trí thư viện với đường dẫn bắt đầu bằng “\" và một đường dẫn bắt đầu bằng chữ cái, ví dụ:”D:“. Bạn có thể điều chỉnh thứ tự của .libPaths()
bằng đoạn mã code dưới đây.
# Switch order of libraries
# this can effect the priority of R finding a package. E.g. you may want your C: library to be listed first
<- .libPaths() # get the paths
myPaths <- c(myPaths[2], myPaths[1]) # switch them
myPaths .libPaths(myPaths) # reassign them
Nếu bạn gặp khó khăn với R Markdown kết nối với Pandoc, hãy bắt đầu với đoạn code mã này để tìm hiểu RStudio cài đặt Pandoc của bạn ở đâu.
# Find Pandoc
Sys.getenv("RSTUDIO_PANDOC") # Find where RStudio thinks your Pandoc installation is
Nếu bạn muốn xem package đang được tải từ thư viện ở đâu, hãy thử đoạn code dưới đây:
# Find a package
# gives first location of package (note order of your libraries)
find.package("rmarkdown", lib.loc = NULL, quiet = FALSE, verbose = getOption("verbose"))
49.4 Khắc phục các lỗi thường gặp
“Failed to compile…tex in rmarkdown”
- Kiểm tra cài đặt TinyTex hoặc cài đặt TinyTex vào ổ C:. Xem thêm chương R cơ bản để biết về cách cài đặt TinyTex
# check/install tinytex, to C: location
::install_tinytex()
tinytex:::is_tinytex() # should return TRUE (note three colons) tinytex
Internet routines cannot be loaded
Ví dụ, Error in tools::startDynamicHelp() : internet routines cannot be loaded
- Thử chọn phiên bản 32-bit từ RStudio qua Tools/Global Options .
- Chú ý: nếu phiên bản 32-bit không xuất hiện trong menu, hãy đảm bảo rằng bạn không sử dụng RStudio phiên bản 1.2.
- Chú ý: nếu phiên bản 32-bit không xuất hiện trong menu, hãy đảm bảo rằng bạn không sử dụng RStudio phiên bản 1.2.
- Ngoài ra, hãy thử gỡ cài đặt R và cài đặt lại với phiên bản bit khác (32 thay vì 64)
C: library does not appear as an option when I try to install packages manually
- Chạy RStudio với tư cách quản trị viên, sau đó tùy chọn này sẽ xuất hiện.
- Để thiết lập R Studio luôn chạy với tư cách quản trị viên (thuận tiện khi sử dụng dự án R mà bạn không nhấp vào biểu tượng R Studio để mở) … nhấp chuột phải vào biểu tượng R studio
Hình ảnh bên dưới cho thấy cách bạn có thể chọn thủ công thư viện để cài đặt một gói. Cửa sổ này xuất hiện khi bạn mở ngăn Packages RStudio và nhấp vào “Install”.
Pandoc 1 error
Nếu bạn gặp phải “pandoc error 1” khi knitting tập lệnh R Markdowns trên ổ đĩa mạng:
- Trong số nhiều vị trí thư viện đặt lưu trữ, hãy chọn một vị trí ổ cứng bắt đầu bằng một chữ cái (xem lại ở trên)
- Giải pháp trên có thể thực hiện được khi knitting trên ổ đĩa cá nhân trong khi máy tính có kết nối internet
- Xem thêm các mẹo khác tại đây: https://ciser.cornell.edu/rmarkdown-knit-to-html-word-pdf/
Pandoc Error 83
Lỗi sẽ có dạng như sau: can't find file...rmarkdown...lua...
. Điều này có nghĩa là nó không thể tìm thấy tệp này.
Xem thêm tại đây: https://stackoverflow.com/questions/58830927/rmarkdown-unable-to-locate-lua-filter-when-knitting-to-word
Các khả năng có thể xảy ra:
- Package Rmarkdown chưa được cài đặt
- Package Rmarkdown không thể tìm thấy
- Vấn đề về quyền quản trị.
Có thể R không thể tìm thấy các package sử dụng trong file rmarkdown, vì vậy hãy kiểm tra thư viện nào mà package trong rmarkdown đang được lưu trữ (xem đoạn code để thực hiện thao tác này ở trên). Nếu package được cài đặt vào một thư viện không thể truy cập được (ví dụ: bắt đầu bằng “\") hãy xem xét việc di chuyển nó sang C: hoặc thư viện ổ cứng theo cách thủ công. Lưu ý rằng package rmarkdown phải có thể kết nối với cài đặt TinyTex, vì vậy không thể tồn tại trong thư viện trên ổ đĩa mạng.
Lỗi Pandoc 61
Vú dụ: Error: pandoc document conversion failed with error 61
hoặc Could not fetch...
- Thử chạy RStudio với tư cách quản trị viên (nhấp chuột phải vào biểu tượng, chọn chạy với tư cách quản trị viên, xem hướng dẫn ở trên)
- Ngoài ra, hãy xem nếu có package cụ thể nào không thể truy cập được có thể được chuyển đến ổ C: library.
Lỗi LaTex (xem bên dưới)
Một lỗi như: ! Package pdftex.def Error: File 'cict_qm2_2020-06-29_files/figure-latex/unnamed-chunk-5-1.png' not found: using draft setting.
hoặc Error: LaTeX failed to compile file_name.tex.
- Xem thêm tại đây https://yihui.org/tinytex/r/#debugging để biết các mẹo debug.
- Xem thêm file_name.log để biết thêm chi tiết.
Lỗi Pandoc 127
Đây có thể là vấn đề về RAM (dung lượng). Hãy bắt đầu lại phiên làm việc R của bạn và thử lại.
Định vị các ổ đĩa mạng
Định vị ổ đĩa mạng có thể gặp một số rủi ro. Hãy tham khảo ý kiến với bộ phận CNTT của bạn trước khi làm!
Bạn có thể xem thêm các thảo luận trên diễn đàn này:
Làm cách nào để mở một tệp “thông qua một ổ đĩa mạng đã được đinh vị”?
- Trước tiên, bạn cần biết vị trí ổ mạng mà bạn đang cố gắng truy cập.
- Tiếp theo, trong trình quản lý tệp của Windows, bạn sẽ cần phải nhấp chuột phải vào “Máy tính này” ở ngăn bên phải và chọn “Map a network drive”.
- Đi qua hộp thoại để xác định vị trí mạng trước đó dưới dạng ổ đĩa có tên bắt đầu chữ cái.
- Bây giờ bạn có hai cách để truy cập tệp bạn đang mở. Sử dụng đường dẫn ổ đĩa bắt đầu bằng ký tự có thể hoạt động.
Lỗi khi cài đặt install.packages()
Nếu bạn gặp lỗi bao gồm đề cập đến thư mục “khóa”, ví dụ: Error in install.packages : ERROR: failed to lock directory...
Tìm trong thư viện package của bạn và bạn sẽ thấy một thư mục có tên bắt đầu bằng “00LOCK”. Hãy thử các mẹo sau:
- Xóa thủ công thư mục thư mục “00LOCK” khỏi thư viện package của bạn. Thử cài đặt lại package này.
- Bạn cũng có thể thử lệnh
pacman::p_unlock()
(bạn cũng có thể đặt lệnh này trong Rprofile để nó chạy mỗi khi mở dự án). Sau đó, hãy thử cài đặt lại package. Bạn có thể cần thử một vìa lần. - Thử chạy RStudio ở chế độ Quản trị viên và thử cài đặt từng package một.
- Nếu vẫn không thành công, hãy cài đặt packge vào thư viện hoặc thư mục khác (ví dụ: Temp) và sau đó sao chép thủ công thư mục của package vào thư viện mong muốn.