2012-03-16 19 views
27

Estoy usando R en Linux, solo en la línea de comandos.Lista de variables definidas en R

Al volver a un proyecto después de un tiempo, he olvidado los nombres de variables que utilicé y el historial de comandos de R no los contiene.

Parece que recuerdo que hay un comando que enumera todas las variables definidas por el usuario, pero no recuerda qué es, y no puede encontrarlo en la web.

¿Cómo puedo enumerar todas las variables definidas por el usuario en R?

Respuesta

40

ls()

Desde la página de ayuda:

‘ls’ and ‘objects’ return a vector of character strings giving the 
names of the objects in the specified environment. When invoked 
with no argument at the top level prompt, ‘ls’ shows what data 
sets and functions a user has defined. When invoked with no 
argument inside a function, ‘ls’ returns the names of the 
functions local variables. This is useful in conjunction with 
‘browser’. 

Edit: Debo señalar que para listar todas las variables que se necesita para utilizar

ls(all.names = TRUE) 

de lo contrario las variables que comienzan con un punto no aparecerá en el listado.

+0

Figuras. Debería de haberlo adivinado. ¡Gracias! –

+0

@Dason ¿Hay alguna diferencia entre esto y 'objects()'? – frank

+1

@frank No. https://github.com/wch/r-source/blob/51a4342f1b93d85bf6750cded97d8fa013984f46/src/library/base/R/attach.R#L200 – Dason

2

Es posible que desee echa un vistazo a este enlace:

Tricks to manage the available memory in an R session

Tiene una gran función para mostrar los objetos junto con su uso de la memoria. Es parte de mi secuencia de comandos de inicio para R.

# Written by Dirk Eddelbuettel found here: https://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session 

# improved list of objects 

.ls.objects <- function (pos = 1, pattern, order.by, 
         decreasing=FALSE, head=FALSE, n=5) { 
    napply <- function(names, fn) sapply(names, function(x) 
             fn(get(x, pos = pos))) 
    names <- ls(pos = pos, pattern = pattern) 
    obj.class <- napply(names, function(x) as.character(class(x))[1]) 
    obj.mode <- napply(names, mode) 
    obj.type <- ifelse(is.na(obj.class), obj.mode, obj.class) 
    obj.size <- napply(names, object.size) 
    obj.dim <- t(napply(names, function(x) 
         as.numeric(dim(x))[1:2])) 
    vec <- is.na(obj.dim)[, 1] & (obj.type != "function") 
    obj.dim[vec, 1] <- napply(names, length)[vec] 
    out <- data.frame(obj.type, obj.size, obj.dim) 
    names(out) <- c("Type", "Size", "Rows", "Columns") 
    if (!missing(order.by)) 
     out <- out[order(out[[order.by]], decreasing=decreasing), ] 
    if (head) 
     out <- head(out, n) 
    out 
} 
# shorthand 
lsos <- function(..., n=10) { 
    .ls.objects(..., order.by="Size", decreasing=TRUE, head=TRUE, n=n) 
} 
Cuestiones relacionadas