Me preguntaba cómo detectar automáticamente el sistema operativo en R, por ejemplo, para colocar elementos en el archivo .Rprofile.detección de sistema operativo en R (por ejemplo, para archivos de .profile adaptativos)
Respuesta
no estoy seguro sobre el uso de Sys.info()
desde la página de ayuda dice que no está implementado en todas las plataformas de I; ¿Tal vez usar .Platform
en su lugar? ?.Platform
tiene una gran cantidad de información útil, ya que:
‘.Platform’ es una lista con algunos detalles de la plataforma bajo la cual R fue construido. Esto proporciona los medios para escribir el código R de OS portátil.
También parece que los paquetes incluidos con R utilizan .Platform
mucho más frecuentemente que Sys.info
.
josh: /c/R/R-2.12.0-src/src/library
> grep ".Platform" */R/* | wc -l
144
josh: /c/R/R-2.12.0-src/src/library
> grep ".Platform\$OS.type" */R/* | wc -l
99
josh: /c/R/R-2.12.0-src/src/library
> grep "Sys.info" */R/* | wc -l
4
switch(Sys.info()[['sysname']],
Windows= {print("I'm a Windows PC.")},
Linux = {print("I'm a penguin.")},
Darwin = {print("I'm a Mac.")})
Dado que me tomó más que una cantidad de tiempo trivial para resolver esto, pensé que otro se beneficiaría también.
Saludos,
- Brian
> Sys.info()
sysname
"Linux"
release
"2.6.32-26-generic"
version
"#48-Ubuntu SMP Wed Nov 24 09:00:03 UTC 2010"
También hay 'R.version $ os', pero' Sys.info() 'es mejor para las pruebas en contra. –
@Richie ¿Puede ampliar por qué Sys.info() es mejor? –
La página de ayuda para 'R.version' dice" No use 'R.version $ os' para probar la plataforma en la que se está ejecutando el código: use' .Platform $ OS.type' en su lugar. " De manera molesta, no menciona la idoneidad de 'Sys.info()'. –
Desde Sys.info()
y productos .Platform$OS.type
resultados diferentes dependiendo de qué sistema operativo se está ejecutando, he buscado un poco más y encontré la siguiente función en https://www.r-bloggers.com/identifying-the-os-from-r/
get_os <- function(){
sysinf <- Sys.info()
if (!is.null(sysinf)){
os <- sysinf['sysname']
if (os == 'Darwin')
os <- "osx"
} else { ## mystery machine
os <- .Platform$OS.type
if (grepl("^darwin", R.version$os))
os <- "osx"
if (grepl("linux-gnu", R.version$os))
os <- "linux"
}
tolower(os)
}
- 1. ¿Cuánto de un sistema operativo podría estar escrito en, por ejemplo, Python?
- 2. Sistema operativo de espacio aislado
- 3. Cómo comprobar el sistema operativo dentro de R
- 4. Adobe AIR y diferentes sistemas de archivos del sistema operativo
- 5. API independiente del sistema operativo para supervisar el sistema de archivos?
- 6. PHP detección de la codificación del sistema de archivos
- 7. Desarrollo de un sistema operativo
- 8. iPhone App de detección de sistema operativo a través de agente de usuario
- 9. Detectar sistema operativo en Clojure
- 10. Un sistema operativo respaldado por una base de datos
- 11. Detectar el sistema operativo
- 12. ¿Qué significa, por ejemplo,% +% do? en R
- 13. Libros de Android en el sistema operativo
- 14. C biblioteca de sistema operativo independiente
- 15. Requisitos del sistema operativo para arc4random_uniform()
- 16. Sistema operativo recomendado para Visual Studio 2008
- 17. Detección de inactividad del sistema
- 18. ¿Por qué ir al sistema operativo de 64 bits?
- 19. Recursos para desarrollar un sistema operativo
- 20. ¿El mejor sistema operativo educativo para estudiar?
- 21. Prueba de sistema operativo en tiempo real para dureza
- 22. Agregado() ejemplo en R
- 23. Detección R de Blas versión
- 24. sistema operativo y aplicaciones WPF
- 25. jQuery - detectando el sistema operativo y la versión del sistema operativo
- 26. Pregunta de arranque del sistema operativo básico
- 27. compatibilidad del sistema operativo para varias versiones de .NET Framework
- 28. ¿Cómo habilita mod_rewrite en cualquier sistema operativo?
- 29. Familia de sistema operativo predeterminada para la implementación
- 30. Rubyzip vs compresión de sistema operativo nativo
relacionados: http://stackoverflow.com/questions/ 2096473/r-determine-if-a-script-is-running-in-windows-or-linux pero las respuestas a continuación son más completas. –