Hàm tổng quan dữ liệu đồ họa (tóm tắt) trong R


39

Tôi chắc chắn rằng tôi đã bắt gặp một chức năng như thế này trong gói R trước đây, nhưng sau khi Google mở rộng, tôi dường như không thể tìm thấy nó ở bất cứ đâu. Hàm tôi nghĩ là đã tạo ra một bản tóm tắt đồ họa cho một biến được cung cấp cho nó, tạo đầu ra với một số biểu đồ (biểu đồ và có lẽ là một ô và biểu đồ râu) và một số văn bản cung cấp chi tiết như trung bình, SD, v.v.

Tôi khá chắc chắn rằng chức năng này không được bao gồm trong cơ sở R, nhưng dường như tôi không thể tìm thấy gói tôi đã sử dụng.

Có ai biết một chức năng như thế này không, và nếu vậy, nó nằm trong gói nào?

Câu trả lời:


25

Gói Hmisc của Frank Harrell có một số đồ họa cơ bản với các tùy chọn cho chú thích: kiểm tra các chức năng gói summary.formula()và liên quan plot. Tôi cũng thích describe()chức năng này.

Để biết thêm thông tin, hãy xem Thư viện H'misc hoặc Giới thiệu về S-Plus và Thư viện thiết kế và thư viện .

Dưới đây là một số hình ảnh được chụp từ sự giúp đỡ trên mạng ( bpplt, describeplot(summary(...))): văn bản thay thế văn bản thay thế văn bản thay thế

Nhiều ví dụ khác có thể được duyệt trực tuyến trên Sổ tay đồ họa R , xem H'misc (và đừng bỏ lỡ rms ).


Các chức năng này đều nằm trong gói H'misc, không phải Design. Cảm ơn đã đăng bài này.
Frank Harrell

Hai trong số ba liên kết là xuống.
Được tặng

15

Tôi đặc biệt khuyên dùng biểu đồ chức năng. Tương quan trong gói PerformanceAnalytics . Nó gói một lượng thông tin đáng kinh ngạc vào một biểu đồ duy nhất: biểu đồ mật độ nhân và biểu đồ cho mỗi biến số, và biểu đồ phân tán, bộ làm mịn thấp và tương quan cho từng cặp biến. Đây là một trong những chức năng tóm tắt dữ liệu đồ họa yêu thích của tôi:

library(PerformanceAnalytics)
chart.Correlation(iris[,1:4],col=iris$Species)

Tôi thích biểu đồ này!


2
+1, FWIW , ? Scatterplot.matrix trong gói xe hơi sẽ cung cấp cho bạn một âm mưu tương tự (w / một số khác biệt, ví dụ: w / o the r's & stars).
gung - Phục hồi Monica

@gung Đó là một chức năng tuyệt vời, cảm ơn vì tiền boa.
Zach

5

Tôi đã tìm thấy chức năng này hữu ích ... xử lý của tác giả ban đầu là hộp hô hấp .

Dưới đây là một ví dụ về đầu ra

f_summary <- function(data_to_plot)
{
## univariate data summary
require(nortest)
#data <- as.numeric(scan ("data.txt")) #commenting out by mike
data <- na.omit(as.numeric(as.character(data_to_plot))) #added by mike
dataFull <- as.numeric(as.character(data_to_plot))

# first job is to save the graphics parameters currently used
def.par <- par(no.readonly = TRUE)
par("plt" = c(.2,.95,.2,.8))
layout( matrix(c(1,1,2,2,1,1,2,2,4,5,8,8,6,7,9,10,3,3,9,10), 5, 4, byrow = TRUE))

#histogram on the top left
h <- hist(data, breaks = "Sturges", plot = FALSE)
xfit<-seq(min(data),max(data),length=100)
yfit<-yfit<-dnorm(xfit,mean=mean(data),sd=sd(data))
yfit <- yfit*diff(h$mids[1:2])*length(data)
plot (h, axes = TRUE, main = paste(deparse(substitute(data_to_plot))), cex.main=2, xlab=NA)
lines(xfit, yfit, col="blue", lwd=2)
leg1 <- paste("mean = ", round(mean(data), digits = 4))
leg2 <- paste("sd = ", round(sd(data),digits = 4))
count <- paste("count = ", sum(!is.na(dataFull)))
missing <- paste("missing = ", sum(is.na(dataFull)))
legend(x = "topright", c(leg1,leg2,count,missing), bty = "n")

## normal qq plot
qqnorm(data, bty = "n", pch = 20)
qqline(data)
p <- ad.test(data)
leg <- paste("Anderson-Darling p = ", round(as.numeric(p[2]), digits = 4))
legend(x = "topleft", leg, bty = "n")

## boxplot (bottom left)
boxplot(data, horizontal = TRUE)
leg1 <- paste("median = ", round(median(data), digits = 4))
lq <- quantile(data, 0.25)
leg2 <- paste("25th percentile =  ", round(lq,digits = 4))
uq <- quantile(data, 0.75)
leg3 <- paste("75th percentile = ", round(uq,digits = 4))
legend(x = "top", leg1, bty = "n")
legend(x = "bottom", paste(leg2, leg3, sep = "; "), bty = "n")

## the various histograms with different bins
h2 <- hist(data,  breaks = (0:20 * (max(data) - min (data))/20)+min(data), plot = FALSE)
plot (h2, axes = TRUE, main = "20 bins")

h3 <- hist(data,  breaks = (0:10 * (max(data) - min (data))/10)+min(data), plot = FALSE)
plot (h3, axes = TRUE, main = "10 bins")

h4 <- hist(data,  breaks = (0:8 * (max(data) - min (data))/8)+min(data), plot = FALSE)
plot (h4, axes = TRUE, main = "8 bins")

h5 <- hist(data,  breaks = (0:6 * (max(data) - min (data))/6)+min(data), plot = FALSE)
plot (h5, axes = TRUE,main = "6 bins")

## the time series, ACF and PACF
plot (data, main = "Time series", pch = 20, ylab = paste(deparse(substitute(data_to_plot))))
acf(data, lag.max = 20)
pacf(data, lag.max = 20)

## reset the graphics display to default
par(def.par)

#original code for f_summary by respiratoryclub

}

2
Tôi vừa cập nhật mã để nó sẽ báo cáo hợp lệ / thiếu n, và sau đó bỏ qua các giá trị bị thiếu cho các hàm bị phá vỡ bởi các giá trị bị thiếu.
Michael Giám mục

4

Tôi không chắc đây có phải là điều bạn đang nghĩ đến không, nhưng bạn có thể muốn kiểm tra gói fitdistrplus . Điều này có rất nhiều chức năng hay, tự động tạo ra thông tin tóm tắt hữu ích về phân phối của bạn và tạo ra các sơ đồ của một số thông tin đó. Dưới đây là một số ví dụ từ họa tiết :

library(fitdistrplus)
data(groundbeef)
windows()              # or quartz() for mac
  plotdist(groundbeef$serving)  

nhập mô tả hình ảnh ở đây

windows()
> descdist(groundbeef$serving, boot=1000)
summary statistics
------
min:  10   max:  200 
median:  79 
mean:  73.64567 
estimated sd:  35.88487 
estimated skewness:  0.7352745 
estimated kurtosis:  3.551384 

nhập mô tả hình ảnh ở đây

fw = fitdist(groundbeef$serving, "weibull")

>summary(fw)
Fitting of the distribution ' weibull ' by maximum likelihood 
Parameters : 
       estimate Std. Error
shape  2.185885  0.1045755
scale 83.347679  2.5268626
Loglikelihood:  -1255.225   AIC:  2514.449   BIC:  2521.524 
Correlation matrix:
         shape    scale
shape 1.000000 0.321821
scale 0.321821 1.000000

fg  = fitdist(groundbeef$serving, "gamma")
fln = fitdist(groundbeef$serving, "lnorm")
windows()
  plot(fw)

nhập mô tả hình ảnh ở đây

windows()
  cdfcomp(list(fw,fln,fg), legendtext=c("Weibull","logNormal","gamma"), lwd=2,
          xlab="serving sizes (g)")

nhập mô tả hình ảnh ở đây

>gofstat(fw)
Kolmogorov-Smirnov statistic:  0.1396646 
Cramer-von Mises statistic:  0.6840994 
Anderson-Darling statistic:  3.573646 

1

Để khám phá dữ liệu tôi thực sự thích rattle. Cài đặt gói và chỉ cần gọi rattle(). Giao diện khá tự giải thích.


rigs yêu cầu XML không được hỗ trợ cho Windows (và không có sẵn trong tệp nhị phân Windows) :-(. cran.r-project.org/web/packages/XML/index.html
whuber

@whuber: tệ quá! đó là một gói khá gọn gàng
nico

2
@whuber @nico Có thể tìm thấy tệp zip cho XML tại stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.13 (và tương tự cho một số phiên bản khác). Có những vấn đề khác với nó, nhưng cuối cùng nó có vẻ hiệu quả
Henry


0

Nó có thể không chính xác những gì bạn đang tìm kiếm, nhưng hàm cặp.panels () trong gói tâm lý cho R có thể chứng minh hữu ích. Nó cung cấp cho bạn các giá trị tương quan ở đường chéo trên, đường hoàng thổ và điểm ở đường chéo dưới và hiển thị biểu đồ của mỗi điểm của biến trong đường chéo của ma trận. Cá nhân tôi nghĩ rằng đây là một trong những tóm tắt đồ họa tốt nhất về dữ liệu xung quanh.


0

Yêu thích của tôi là DescTools

library(DescTools)
data("iris")
Desc(iris, plotit = T)

Mà tạo ra một loạt các lô như thế này:

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây và hiển thị một loạt các giá trị mô tả (bao gồm giá trị trung bình, meanSE, trung vị, phần trăm, phạm vi, sd, IQR, giá trị của độ lệch và kurtosis): nhập mô tả hình ảnh ở đây

Ngoài ra, tabplot cũng rất tốt cho tổng quan đồ họa.

Nó tạo ra các lô ưa thích với tableplot(iris, sortCol=Species)

nhập mô tả hình ảnh ở đây

Thậm chí còn có phiên bản D3 tabplot, tức là tabplotd3 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.