Uruchamiam R w systemie Windows i mam plik csv na pulpicie. Ładuję to w następujący sposób,
x<-read.csv("C:\Users\surfcat\Desktop\2006_dissimilarity.csv",header=TRUE)
ale R wyświetla następujący komunikat o błędzie
Błąd: użyto „\ U” bez cyfr szesnastkowych w ciągu znaków rozpoczynającym się od „C: \ U”
Więc jaki jest właściwy sposób załadowania tego pliku. Używam Vista
r
filepath
backslash
path-separator
user297850
źródło
źródło
Proszę nie oznaczać tej odpowiedzi jako poprawnej, ponieważ smitec już odpowiedział poprawnie. Dołączam wygodną funkcję, którą trzymam w mojej bibliotece .First, która umożliwia konwersję ścieżki okna do formatu działającego w R (metody opisane przez Sachę Epskampa). Po prostu skopiuj ścieżkę do schowka (ctrl + c), a następnie uruchom funkcję jako
pathPrep()
. Nie ma potrzeby do kłótni. Ścieżka jest poprawnie drukowana do konsoli i zapisywana w schowku w celu łatwego wklejenia do skryptu. Mam nadzieję, że to jest pomocne.pathPrep <- function(path = "clipboard") { y <- if (path == "clipboard") { readClipboard() } else { cat("Please enter the path:\n\n") readline() } x <- chartr("\\", "/", y) writeClipboard(x) return(x) }
źródło
WP
(ścieżka do systemu Windows) w pakiecie dla programistów raportów.Rozwiązanie
Spróbuj tego:
x <- read.csv("C:/Users/surfcat/Desktop/2006_dissimilarity.csv", header=TRUE)
Wyjaśnienie
R nie jest w stanie poprawnie zrozumieć normalnych ścieżek okien, ponieważ
"\"
ma specjalne znaczenie - jest używany jako znak ucieczki, aby nadać kolejnym znakom specjalne znaczenie (\n
dla nowej linii,\t
dla tabulatora,\r
dla powrotu karetki, ..., spójrz tutaj ).Ponieważ R nie zna sekwencji
\U
, narzeka. Wystarczy wymienić"\"
z"/"
lub użyć dodatkowego"\"
aby uciec"\"
od jego szczególnego znaczenia i wszystko działa gładka.Alternatywny
W systemie Windows myślę, że najlepszą rzeczą, jaką można zrobić, aby poprawić przepływ pracy ze ścieżkami specyficznymi dla systemu Windows w R, jest użycie np. AutoHotkey, który pozwala na niestandardowe skróty klawiszowe:
Fragment kodu AutoHotkey (łącze do strony głównej)
źródło
Moje rozwiązanie polega na zdefiniowaniu fragmentu kodu RStudio w następujący sposób:
snippet pp "`r gsub("\\\\", "\\\\\\\\\\\\\\\\", readClipboard())`"
Ten fragment kodu przekształca ukośniki odwrotne
\
w podwójne ukośniki odwrotne\\
. Następująca wersja będzie działać, jeśli wolisz konwertować ukośniki odwrotne na ukośniki/
.snippet pp "`r gsub("\\\\", "/", readClipboard())`"
Po zdefiniowaniu preferowanego fragmentu wklej ścieżkę ze schowka, wpisując p- p- TAB- ENTER(czyli pp, a następnie klawisz tabulatora, a następnie enter), a ścieżka zostanie magicznie wstawiona z przyjaznymi ogranicznikami R.
źródło
Zamień lewe ukośniki \ na prawe ukośniki / na komputerze z systemem Windows
źródło
Zastąpienie ukośnika odwrotnego ukośnikiem w przód działało u mnie w systemie Windows.
źródło
Najlepszym sposobem na rozwiązanie tego problemu w przypadku pliku txt, który zawiera dane do eksploracji tekstu (mowa, newsletter, itp.) Jest zastąpienie „\” znakiem „/”.
Przykład:
file<-Corpus(DirSource("C:/Users/PRATEEK/Desktop/training tool/Text Analytics/text_file_main"))
źródło
Wiem, że to jest naprawdę stare, ale jeśli i tak kopiujesz i wklejasz, możesz po prostu użyć:
readClipboard () wymusza dla ciebie ukośniki. Pamiętaj tylko, aby upewnić się, że w kopii znajduje się plik „.csv”, na przykład w ten sposób:
read.csv(paste0(readClipboard(),'.csv'))
A jeśli naprawdę chcesz zminimalizować pisanie, możesz użyć kilku funkcji:
setWD <- function(){ setwd(readClipboard()) } readCSV <- function(){ return(readr::read_csv(paste0(readClipboard(),'.csv'))) } #copy directory path setWD() #copy file name df <- readCSV()
źródło
Myślę, że R czyta „\” w ciągu jako znak zmiany znaczenia. Na przykład \ n tworzy nową linię w ciągu, \ t tworzy nową kartę w ciągu.
'\' zadziała, ponieważ R rozpozna to jako normalny lewy ukośnik.
źródło
readClipboard()
działa również bezpośrednio. Skopiuj ścieżkę do schowkaNastępnie
pojawia się jako
[1] "C:\\Users\\surfcat\\Desktop\\2006_dissimilarity.csv"
źródło
Prostym sposobem jest użycie Pythona. w typie terminala Pythona
źródło