2015-11-19 12 views
15

Qualcuno può aiutare come ottenere l'elenco dei set di dati incorporati e dei relativi pacchetti di dipendenze?Come posso ottenere un elenco di set di dati incorporati in R?

+7

Provate con 'dati()' – akrun

+3

Si potrebbe voler 'ls ("pacchetto: insiemi di dati")' per i nomi di tutti i set di dati "built-in" nel 'datasets' pacchetto. –

+1

Grazie a @akrun ... questo ha funzionato ... data() restituisce i frame di dati dal pacchetto 'dataset' e 'data (package = .packages (all.available = TRUE))' restituisce i datafram integrati da tutti i pacchetti . – mockash

risposta

21

Ci sono diversi modi per trovare i set di dati inclusi in R:

1: Utilizzando data() vi darà un elenco dei set di dati di tutti i pacchetti caricati (e non solo quelli del pacchetto datasets); i dataset sono ordinate per pacchetto

2: Utilizzando data(package = .packages(all.available = TRUE)) vi darà una lista di tutti i set di dati nei pacchetti disponibili sul computer (cioè anche quelli non-caricati)

3: Uso data(package = "packagename") vi darà i set di dati di quel pacchetto specifico, in modo da data(package = "plyr") darà i set di dati nel pacchetto


plyr Se volete sapere in quale pacchetto un dat aset si trova (ad es. la acme set di dati), si può fare:

dat <- as.data.frame(data(package = .packages(all.available = TRUE))$results) 
dat[dat$Item=="acme", c(1,3,4)] 

che dà:

Package Item     Title 
107 boot acme Monthly Excess Returns 
+0

E come trovo il pacchetto di un dataframe? Nel senso che conosco un dataframe come faccio a sapere in quale pacchetto è stato creato. – mockash

+6

Per alcuni set di dati, è possibile utilizzare la funzione 'help', mostra il pacchetto da cui proviene il set. Ad esempio: "? Iris". – Heroka

1

ho spesso bisogno di sapere anche quale struttura di set di dati sono disponibili, così ho creato nella mia dataStrmisc package.

dataStr <- function(package="datasets", ...) 
    { 
    d <- data(package=package, envir=new.env(), ...)$results[,"Item"] 
    d <- sapply(strsplit(d, split=" ", fixed=TRUE), "[", 1) 
    d <- d[order(tolower(d))] 
    for(x in d){ message(x, ": ", class(get(x))); message(str(get(x)))} 
    } 
dataStr() 

Si prega di notare che l'uscita nella console è piuttosto lunga.

Questo è il tipo di uscita:

[...] 

warpbreaks: data.frame 
'data.frame': 54 obs. of 3 variables: 
$ breaks : num 26 30 54 25 70 52 51 26 67 18 ... 
$ wool : Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ... 
$ tension: Factor w/ 3 levels "L","M","H": 1 1 1 1 1 1 1 1 1 2 ... 

WorldPhones: matrix 
num [1:7, 1:7] 45939 60423 64721 68484 71799 ... 
- attr(*, "dimnames")=List of 2 
    ..$ : chr [1:7] "1951" "1956" "1957" "1958" ... 
    ..$ : chr [1:7] "N.Amer" "Europe" "Asia" "S.Amer" ... 

WWWusage: ts 
Time-Series [1:100] from 1 to 100: 88 84 85 85 84 85 83 85 88 89 ... 

Modifica: Per ottenere un output più informativo e usarlo per i pacchetti scaricati o tutti i pacchetti sul percorso di ricerca, si prega di utilizzare la versione on-line rivista con

source("https://raw.githubusercontent.com/brry/berryFunctions/master/R/dataStr.R") 
+0

Bello, anche se questo richiede qualche modifica se si desidera che funzioni con altri pacchetti. 'dataStr (" colorspace ") # Errore in get (x): oggetto" USSouthPolygon "non trovato (lo vedo anche se' colorspace :: USSouthPolygon' funziona.) – Frank

+1

Soluzione rapida: prima 'library (colorspace)'. La soluzione migliore ora è online, ma il codice ha impiegato troppo tempo per copypaste qui. https://github.com/brry/berryFunctions/blob/master/R/dataStr.R –

Problemi correlati