El problema es que se está asignando su nueva versión de layout
al espacio de nombres gráficos , que es lo que devuelve environment(graphics:::layout)
. Usted lugar quieren hacer la asignación en los gráficos adjuntos paquete (es decir, el medio ambiente aparecen como "package:graphics"
en su ruta de búsqueda).
En su ejemplo, cuando se busca layout
, R Búsquedas la lista de paquetes adjuntos devueltos por search()
, y se encuentra en el original layout
package:graphics
, antes de que alguna vez se pone a funcionar que ha asignado en namespace:graphics
.
La solución es simple, requiriendo sólo un cambio de ambiente asignado a env
en la primera línea:
# Assign into <environment: package:graphics>
# rather than <environment: namespace:graphics>
env <- as.environment("package:graphics")
unlockBinding("layout" , env = env)
assign("layout" , function(){} , envir = env)
lockBinding("layout" , env = env)
# Now it works as expected
layout
# function(){}
Un poco más elaboración, que puede ser útil para algunos:
search() # Shows the path along which symbols typed at the command
# will be searched for. The one named "package:graphics"
# is where 'layout' will be found.
# None of these return the environment corresponding to "package graphics"
environment(layout)
environment(graphics::layout)
environment(graphics:::layout)
# This does
as.environment("package:graphics")
todos - me disculpo por todas las preguntas relacionadas con los entornos últimamente. Esto está demostrando ser un tema complicado y confuso. Si hay algún material de lectura recomendado (aparte de los archivos PDF estándar R que no son muy útiles) ¡por favor hágamelo saber! – SFun28
No te disculpes; He aprendido mucho de ellos yo mismo. No tengo yo, pero he oído que el [Cámaras] (http://www.amazon.com/Software-Data-Analysis-Programming-Statistics/dp/1441926127/ref=sr_1_9?s=books&ie = UTF8 & qid = 1325110851 & sr = 1-9) book es una especie de programación de R (a diferencia de informática estadística) biblia. – joran
De hecho acabo de pedir ese libro hace una hora. =) no puedo esperar para bajarlo. Gracias por las palabras de aliento, joran! – SFun28