2012-03-16 14 views
27

Używam R w systemie Linux, tylko wiersz poleceń.Lista zdefiniowanych zmiennych w R

Po jakimś czasie wracam do projektu, zapomniałem nazw zmiennych, których użyłem, a historia poleceń R ich nie zawiera.

Wydaje mi się, że pamiętam, że istnieje polecenie wyświetlające wszystkie zmienne zdefiniowane przez użytkownika, ale nie pamiętam, co to jest i nie można go znaleźć w Internecie.

Jak wyświetlić listę wszystkich zdefiniowanych przez użytkownika zmiennych w R?

Odpowiedz

40

ls()

Na stronie pomocy:

‘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’. 

Edycja: Należy zauważyć, że do listy wszystkich zmiennych trzeba by użyć

ls(all.names = TRUE) 

inaczej zmiennych, które zaczynają się od kropki nie pojawi się na liście.

+0

Dane. Powinienem był to odgadnąć. Dzięki! –

+0

@Dason Czy istnieje różnica między tym a 'objects()'? – frank

+1

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

2

Możesz sprawdzić ten link:

Tricks to manage the available memory in an R session

Ma wielki funkcję pokazania obiektów wraz z ich wykorzystania pamięci. Jest to część mojego skryptu startowego dla 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) 
} 
Powiązane problemy