Cambiar la ubicación de path.expand (Win 7)

Actualmente:

path.expand("~")

Da:

"C:\\Users\\trinker\\Documents"

Quiero que produzca:

"C:\\Users\\trinker"

El directorio para el símbolo del sistema de Windows es C:\Users\trinker. Esto indica que este es mi directorio de inicio de Windows.

?path.expand me dice que mire el rw-FAQ (LINK). Esto da información por encima de mi capacidad cognitiva. Decidí intentar experimentar de la siguiente manera:

> Sys.getenv("R_USER")
[1] "C:\\Users\\trinker\\Documents"
> normalizePath("~")
[1] "C:\\Users\\trinker\\Documents"

> Sys.getenv("R_USER") <- "C:\\Users\\trinker"
Error in Sys.getenv("R_USER") <- "C:\\Users\\trinker" : 
  target of assignment expands to non-language object
> normalizePath("~") <- "C:\\Users\\trinker"
Error in normalizePath("~") <- "C:\\Users\\trinker" : 
  target of assignment expands to non-language object 

Yo vi:

Sys.setenv(...)
Sys.unsetenv(x)

Pero me asusté de que estaba jugando con cosas con las que no debería estar jugando ciegamente y decidí pedir orientación.

Así que de nuevo me gustaría tener ~ personalizado C:\\Users\\trinker\\ de nuevo (este era el valor predeterminado para mi última PC), no el C:\\Users\\trinker\\Documents Esto es ahora.

preguntado el 12 de junio de 12 a las 21:06

3 Respuestas

Para restablecer persistentemente el directorio que "~" resuelve para todos los usuarios, ponga lo siguiente en el archivo Renviron.site, situado en $RHOME/etc/Renviron.site:

R_USER="C:/Users/trinker"

(Si el archivo aún no está allí, puede crearlo usted mismo).


Si una computadora es compatible con varios usuarios de R y cada uno quiere establecer su propio R_USER ubicación, cada uno puede poner lo siguiente en su propio ".Rprofile" archivo:

Sys.setenv(R_USER = "C:/Users/trinker")

".Rprofile" se busca en el directorio de inicio del usuario, que se devuelve escribiendo Sys.getenv("HOME"). Vea ?Startup y las preguntas frecuentes de R para Windows para más información.

(Gracias a @Dason por señalar el .Rprofile opción.)

Respondido el 12 de junio de 12 a las 23:06

@GSee - Gracias. Simplemente escribí mal, y lo entendiste igual que yo. - Josh O'Brien

Ponerlo en Renviron.site afectaría a todos los usuarios de la computadora, ¿verdad? Aunque estoy bastante seguro de que Tyler es el único que usa R en su computadora, esto todavía parece menos que adecuado. ¿Sería mejor agregar una llamada Sys.setenv a .Rprofile? Sys.setenv(R_USER = "C:/Users/trinker") dentro de .First debería hacerlo. - dason

@Dason: sí, esa es la mejor solución si tiene varios usuarios de R en una sola computadora. Gracias por señalar eso. - Josh O'Brien

La primera opción no funcionó para mí mientras que .Rprofile sí. Supongo que esto se debe a que tengo un perfil .R que uso y R usa esto desde mi wd antes de buscar Renviron.site. +1 Dasona y Josh. - Tyler Rinker

@TylerRinker - O al menos algo así. ?Startup indica que Renviron.site se lee antes que cualquier .Rprofile archivos (así que la configuración en .Rprofile puede sobrescribir la configuración de Renviron.site. En cualquier caso, me alegro de que te haya funcionado. - Josh O'Brien

Otra opción es actualizar la cadena 'objetivo' en el acceso directo que usa para iniciar una nueva sesión de R. Para ello, haga clic con el botón derecho en el icono y seleccione "Propiedades" en el menú contextual. Seleccione la pestaña "Acceso directo" del cuadro de diálogo y agregue uno de los siguientes pares de nombre/valor al target campo.

R_USER="c:\my\favorite\folder"
R_USER="%USERPROFILE%"

Actualmente path.expand("~") se expandirá a c:\my\favorite\folder o para c:\users\my name\.

Un par de notas.

  • Esto también cambiará dónde R busca archivos de usuario como .Rprofile,Rconsoley biblioteca de paquetes de usuario.
  • Si fijó R a su barra de tareas, debe hacer clic con el botón derecho en el ícono de la barra de tareas para encontrar el ícono de acceso directo que inicia R desde la barra de tareas (en la imagen a continuación):

enter image description here

Respondido 06 Oct 16, 17:10

Nuestro administrador de sistemas ha configurado el sistema de tal manera que path.expand("~") o normalizePath("~") siempre conducen a una unidad asignada (\...). Crear un archivo ".Renviron" dentro de la carpeta señalada por path.expand("~") con el siguiente contenido me resolvió el problema :)

R_USER="C:/Users/animeshs"
HOME="C:/Users/animeshs"

Entonces ahora

ruta.expand("~")

[1] "C:/Usuarios/animados"

Respondido el 27 de enero de 22 a las 10:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.