Esto es una locura, y solo por curiosidad intelectual: ¿Puedo ejecutar una función en R de tal manera que después de que la función se complete puedo obtener todas las variables creadas cuando se ejecuta la función? Entonces, ¿la posibilidad de buscar una función justo antes de que volviera? No me refiero a ingresar a la función en modo de depuración.R - obtener todas las variables creadas desde la llamada de función
12
A
Respuesta
18
No estoy seguro de si esto es lo que quiere, pero tal vez cercano. Puede incrustar una expresión de arbitraje en las funciones existentes por trace
:
> trace(lm, exit = function().last_env <<- parent.frame())
Tracing function "lm" in package "stats"
[1] "lm"
> lm(y~x, data.frame(x=1:10, y=10:1))
Tracing lm(y ~ x, data.frame(x = 1:10, y = 10:1)) on exit
Call:
lm(formula = y ~ x, data = data.frame(x = 1:10, y = 10:1))
Coefficients:
(Intercept) x
11 -1
> ls(.last_env)
[1] "cl" "contrasts" "data" "formula" "m" "method" "mf" "model" "mt" "na.action" "offset"
[12] "qr" "ret.x" "ret.y" "singular.ok" "subset" "w" "weights" "x" "y" "z"
> get("cl", .last_env)
lm(formula = y ~ x, data = data.frame(x = 1:10, y = 10:1))
0
Es este el tipo de cosas que busca?
> fjj <- function() { x <- 3; y <- 4; ls(environment())}
> fjj()
[1] "x" "y"
O tal vez desee una lista donde 'obtenga' cada componente.
1
Para obtener todas las variables y sus valores como una lista que podría utilizar la última línea de la función en este ejemplo:
myFunction=function(){
a="lolcat"
b=data.frame(firstCol=1:3,secondCol=letters[1:3])
d=list()
d[["someName"]]=10:13
sapply(ls(),function(x)get(x),simplify=F,USE.NAMES=T)
}
myResults=myFunction()
myResults
de salida:
$a
[1] "lolcat"
$b
firstCol secondCol
1 1 a
2 2 b
3 3 c
$d
$d$someName
[1] 10 11 12 13
Cuestiones relacionadas
- 1. Obtener todas las filas creadas hoy
- 2. ¿Obtener todas las variables de Javascript?
- 3. Obtener argumentos variables directamente desde la pila
- 4. ¿Hay alguna manera de obtener todas las variables en Ruby?
- 5. Haciendo todas las variables globales
- 6. acceso todas las variables locales
- 7. Obtener todas las variables env en C \ C++ en Windows
- 8. eliminar todas las variables, excepto las funciones
- 9. R: N primera de todas las permutaciones
- 10. Java ExecutorService: awaitTerminación de todas las tareas creadas recursivamente
- 11. R: cómo borrar todas las advertencias
- 12. Imprimir la lista de TODAS las variables de entorno
- 13. Imprimir todas las variables globales/variables locales?
- 14. ¿Puedo hacer una macro de clojure que me permita obtener una lista de todas las funciones creadas por la macro?
- 15. Obtener todas las variables $ _POST comenzando con cierto texto
- 16. Cómo obtener la lista de todas las variables en las plantillas de jinja 2
- 17. R - Obtener formales del objeto de llamada
- 18. Llamada a la función c desde Java
- 19. ¿Obtener alcance de llamada en una función de PHP?
- 20. PHP necesita recortar todas las variables $ _POST
- 21. ¿Cómo maneja R el objeto en la llamada de función?
- 22. ¿Necesito restaurar todas las variables onResume?
- 23. ¿Cómo obtener todas las variables definidas en la tabla de alcance/símbolo actual?
- 24. Obtenga todas las variables de instancia declaradas en la clase
- 25. Java: cómo obtener el nombre de la función de llamada
- 26. Imprimiendo todas las variables y valores definidos
- 27. ¿Cómo obtener una lista de todas las NSWindow abiertas desde todas las aplicaciones en ejecución?
- 28. ¿Cómo acceder (y editar) variables desde una función de devolución de llamada?
- 29. Visualización de todas las variables definidas
- 30. Función de llamada jQuery desde una cadena
es 'ls()' en el fin de la función insuficiente? ¿Quiere decir que quiere obtener la lista de variables dentro de la función o fuera de ella? – kohske
No tengo la fuente para la función, así que no puedo poner ls dentro de ella. Imagine que quiero realizar esta operación en una función en una de las bibliotecas base. – SFun28