a “nem lehet megváltoztatni a munkakönyvtárat” R fájl hibaüzenet furcsa kis üzenet, mivel bár kódolási problémáról van szó, előfordulhat, hogy nem R kódhiba következménye. Inkább ez egy olyan probléma, amely abból adódik, hogy megpróbálja megváltoztatni a gyökérkönyvtárat egy nem létező névre. Ez szokatlan problémát jelent, amelyet szerencsére könnyű megoldani az R konzolon belül.
a probléma körülményei.
a “nem lehet megváltoztatni a munkakönyvtárat” hibaüzenet akkor jelenik meg, amikor a setwd() függvény segítségével módosítja a munkakönyvtárat setwd(“~/”) formátumban, vagy érvénytelen adatkönyvtárnevet ad meg. Általában egy fájl az alapértelmezett munkakönyvtárba kerül. Vannak azonban olyan körülmények, amikor érdemes megváltoztatni az aktuális munkakönyvtárat az r szkriptfájlban. Ennek az az előnye, hogy automatikusan visszaállítja magát a projekt vagy az adatkészlet újratöltésekor. Ennek eredményeként ez egy praktikus eszköz a fájlok mentésére és betöltésére az alapértelmezett könyvtárútvonaltól eltérő könyvtárútvonalról. Ez akkor hasznos, ha ismeri a fájl helyét 2 vagy több különböző fájlhoz a projektkönyvtárban.
mi okozza ezt a problémát?
a “nem lehet megváltoztatni a munkakönyvtárat” hibaüzenetet az okozza, hogy az operációs rendszer nem ismeri fel a “~/” szót gyökérkönyvtárként, vagy érvénytelen mappanévre mutat. Ennek eredményeként a szoftver nem létező mappát keres. Ez azt eredményezi, hogy visszaadja ezt az üzenetet, mert nem tudja megváltoztatni a munkakönyvtárat.
# r error cannot change working directory r code> getwd() "C:/Users/Owner/Documents/R/error test"> setwd("C:/Users/Owner/Documents/R/test")Error in setwd("C:/Users/Owner/Documents/R/test") :cannot change working directory
ebben az esetben azért kaptuk az üzenetet, mert érvénytelen mappát adtunk meg. A legtöbb rendszerben a setwd(“~/”) egyszerűen megváltoztatja a munkakönyvtárat a gyökérkönyvtárra. Vannak azonban olyan rendszerek, ahol a “~ / ” nem ismeri fel ezt az üzenetet. Szerencsére a szintaxis kis változása megoldhatja a problémát.
a probléma megoldása.
a probléma megoldása egyszerűen a “~/” hivatkozás megszüntetése a szkriptből. Mivel a setwd () függvény a munkakönyvtár beállítása funkció, használhatja az aktuális könyvtár beállítására a kódban. Csak annyit kell tennie, hogy beállítja a keresett fájl elérési út mappába. A getwd () függvény hasonló a dose “dir” parancshoz, azzal a különbséggel, hogy az R Konzol munkaterületének aktuális munkakönyvtárába kerül.
# r error cannot change working directory solution code> getwd() "C:/Users/Owner/Documents/R/error test"> setwd("~/")> getwd() "C:/Users/Owner/Documents"
ahhoz, hogy ugyanazt a hatást érje el, mint ez a példa R kód, egyszerűen be kell helyettesítenie annak a projektkönyvtárnak a nevét, amelybe a “~/”helyett a karakterláncba szeretne menni. Ahhoz, hogy az aktuális munkakönyvtár csak használja a getwd() függvényt, és végezze el a szükséges módosításokat, hogy a fájl helyét mappát vagy abszolút filepath kívánt, mint az aktuális könyvtárat.
# cannot change working directory r error solution example code> getwd() "C:/Users/Owner/Documents/R/error test"> setwd("C:/Users/Owner/Documents")> getwd() "C:/Users/Owner/Documents"
ebben a példában egyszerűen definiáljuk a munkakönyvtárat “C:/Users/Owner/Documents” a kívánt változtatáshoz. Lehet, hogy nem olyan elegáns vagy rövid, mint a másik változat, de működik. Abban az esetben, ha hibás mappa vagy fájlrendszer neve van, egyszerűen javítsa ki a saját könyvtárban, hogy érvényes név legyen.
ez egy egyszerű probléma, hogy megoldja, de csak akkor valószínű, hogy kap ez a miss beírja a mappa nevét. Ha megkapod a “~ / ” – t, akkor csak meg kell adnod, hogy hova akarod tenni, és működni fog. Mindkét esetben megoldja a problémát.
R hiba nem lehet megváltoztatni a munkakönyvtárat