2015-11-19 19 views
15

Có thể ai đó vui lòng giúp bạn làm thế nào để có được danh sách các bộ dữ liệu tích hợp và các gói phụ thuộc của họ?Làm cách nào để có danh sách các bộ dữ liệu tích hợp trong R?

+7

Hãy thử với 'dữ liệu()' – akrun

+3

Bạn có thể muốn 'ls (" package: datasets ")' cho tên của tất cả các bộ dữ liệu "tích hợp sẵn" trong gói 'datasets'. –

+1

Thanks @akrun ... this work ... data() trả về các khung dữ liệu từ gói 'datasets' và 'data (package = .packages (all.available = TRUE))' trả về các khung dữ liệu dựng sẵn từ tất cả các gói . – mockash

Trả lời

21

Có một số cách để tìm kiếm các tập hợp dữ liệu có trong R:

1: Sử dụng data() sẽ cung cấp cho bạn một danh sách các tập hợp dữ liệu của tất cả các gói nạp (và không chỉ những người từ gói datasets); các tập hợp dữ liệu được sắp xếp theo gói

2: Sử dụng data(package = .packages(all.available = TRUE)) sẽ cung cấp cho bạn một danh sách của tất cả các bộ dữ liệu trong các gói có sẵn trên máy tính của bạn (ví dụ cũng là những người không nạp)

3: Sử dụng data(package = "packagename") sẽ cung cấp cho bạn các bộ dữ liệu của gói cụ thể, vì vậy data(package = "plyr") sẽ cung cấp cho các bộ dữ liệu trong plyr gói


Nếu bạn muốn biết trong đó gói một dat aset có vị trí (ví dụ: các acme bộ dữ liệu), bạn có thể làm:

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

mang đến cho:

Package Item     Title 
107 boot acme Monthly Excess Returns 
+0

Và làm cách nào để tìm gói của một khung dữ liệu? Trong ý nghĩa nếu tôi biết một dataframe làm thế nào để tôi biết trong đó gói nó được tạo ra. – mockash

+6

Đối với một số bộ dữ liệu, bạn có thể sử dụng chức năng 'help'-function', nó hiển thị gói mà bộ này xuất phát. Ví dụ: '? Iris'. – Heroka

1

Tôi thường cũng cần phải biết được cấu trúc của bộ dữ liệu có sẵn, vì vậy tôi tạo dataStr trong misc package tôi.

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() 

Hãy nhớ rằng đầu ra trong bảng điều khiển là khá dài.

Đây là loại đầu ra:

[...] 

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

Sửa: Để có được sản lượng thông tin nhiều hơn và sử dụng nó cho các gói bốc dỡ hoặc tất cả các gói trên con đường tìm kiếm, hãy sử dụng phiên bản trực tuyến sửa đổi với

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

Tốt, mặc dù điều này cần một số sửa đổi nếu bạn muốn nó làm việc với các gói khác. 'dataStr (" colorpace ") # Lỗi trong get (x): đối tượng 'USSouthPolygon' không tìm thấy' (tôi thấy điều này mặc dù' colorspace :: USSouthPolygon' hoạt động.) – Frank

+1

Giải pháp nhanh: first 'library (colorspace)'. Giải pháp tốt hơn hiện đang trực tuyến, nhưng mã đã quá dài để copypaste ở đây. https://github.com/brry/berryFunctions/blob/master/R/dataStr.R –

Các vấn đề liên quan