ฟังก์ชันภาพรวมข้อมูลกราฟิก (สรุป) ใน R


39

ฉันแน่ใจว่าฉันเจอฟังก์ชั่นแบบนี้ในแพ็คเกจ R มาก่อน แต่หลังจาก Googling ที่กว้างขวางฉันดูเหมือนจะไม่สามารถหาได้ทุกที่ ฟังก์ชั่นที่ฉันคิดว่าจะสร้างบทสรุปกราฟิกสำหรับตัวแปรที่กำหนดให้กับมันสร้างผลลัพธ์ด้วยกราฟ (ฮิสโตแกรมและอาจเป็นกล่องและพล็อตมัสสุ) และข้อความบางส่วนที่ให้รายละเอียดเช่นค่าเฉลี่ย SD เป็นต้น

ฉันค่อนข้างมั่นใจว่าฟังก์ชั่นนี้ไม่รวมอยู่ใน base R แต่ฉันไม่สามารถหาแพ็คเกจที่ฉันใช้

ไม่มีใครรู้ถึงฟังก์ชั่นเช่นนี้และถ้าเป็นเช่นนั้นมันเป็นแพคเกจอะไร?

คำตอบ:


25

แพ็คเกจHmiscของ Frank Harrell มีกราฟิคพื้นฐานพร้อมตัวเลือกสำหรับคำอธิบายประกอบ: ดูที่summary.formula()และplotฟังก์ชั่นการตัดคำที่เกี่ยวข้อง ฉันชอบdescribe()ฟังก์ชั่น

สำหรับข้อมูลเพิ่มเติมดูได้ที่ที่Hmisc ห้องสมุดหรือรู้เบื้องต้นเกี่ยวกับ S-Plus และ Hmisc และการออกแบบห้องสมุด

นี่คือภาพบางส่วนนำมาจากความช่วยเหลือเกี่ยวกับเส้น ( bpplt, describeและplot(summary(...))): ข้อความแสดงแทน ข้อความแสดงแทน ข้อความแสดงแทน

ตัวอย่างอื่น ๆ อีกมากมายสามารถเรียกดูออนไลน์ในคู่มือR Graphical ManualดูHmisc (และอย่าพลาดrms )


ฟังก์ชั่นเหล่านี้ทั้งหมดอยู่ในแพ็คเกจ Hmisc ไม่ใช่การออกแบบ ขอขอบคุณที่โพสต์สิ่งนี้
Frank Harrell

ลิงก์สองในสามรายการหยุดทำงาน
Donnied

15

ผมขอแนะนำให้ฟังก์ชั่นchart.CorrelationsในแพคเกจPerformanceAnalytics มันบรรจุข้อมูลจำนวนมากอย่างน่าทึ่งลงในแผนภูมิเดียว: พล็อตความหนาแน่นของเคอร์เนลและฮิสโตแกรมสำหรับแต่ละตัวแปรและ scatterplots, lowess smoothers และ correlations สำหรับคู่ตัวแปรแต่ละคู่ มันเป็นหนึ่งในฟังก์ชั่นสรุปข้อมูลกราฟิกที่ฉันโปรดปราน:

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

ฉันชอบแผนภูมินี้!


2
+1, FWIW, scatterplot.matrixในแพ็คเกจรถยนต์จะให้พล็อตที่คล้ายกัน (ด้วยความแตกต่างบางอย่างเช่นโดยไม่มี & ดาวของ r)
gung - Reinstate Monica

@ gung นั่นเป็นฟังก์ชั่นที่ยอดเยี่ยมขอบคุณสำหรับเคล็ดลับ
ซัค

5

ฉันได้พบฟังก์ชั่นนี้เป็นประโยชน์ที่ ... จับผู้เขียนต้นฉบับเป็น respiratoryclub

นี่คือตัวอย่างของการส่งออก

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
ฉันเพิ่งปรับปรุงรหัสดังนั้นมันจะรายงานที่ถูกต้อง / หายไป n และจากนั้นละเว้นค่าที่หายไปสำหรับฟังก์ชั่นที่ถูกทำลายโดยค่าที่หายไป
Michael Bishop

4

ฉันไม่แน่ใจว่านี่เป็นสิ่งที่คุณคิดหรือไม่ แต่คุณอาจต้องการตรวจสอบแพ็คเกจfitdistrplus นี่เป็นฟังก์ชันที่ดีมากมายที่สร้างข้อมูลสรุปที่เป็นประโยชน์เกี่ยวกับการแจกจ่ายของคุณโดยอัตโนมัติและทำการแปลงข้อมูลบางส่วนนั้น นี่คือตัวอย่างจากบทความสั้น :

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

ป้อนคำอธิบายรูปภาพที่นี่

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 

ป้อนคำอธิบายรูปภาพที่นี่

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)

ป้อนคำอธิบายรูปภาพที่นี่

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

ป้อนคำอธิบายรูปภาพที่นี่

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

1

rattleการสำรวจชุดข้อมูลที่ผมชอบ rattle()ติดตั้งแพคเกจและเพียงแค่โทร อินเทอร์เฟซค่อนข้างอธิบายตนเอง


rattle ต้องการ XML ซึ่งไม่รองรับ Windows (และไม่สามารถใช้ได้ใน Windows ไบนารี) :-(. cran.r-project.org/web/packages/XML/index.html
whuber

@whuber: เลวร้ายเกินไป! มันค่อนข้างเป็นระเบียบเรียบร้อย
โก้

2
@whuber @nico สามารถดูไฟล์ซิปสำหรับ XML ได้ที่stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.13 (และรุ่นอื่น ๆ ที่คล้ายกัน) มีปัญหาอื่น ๆ เกี่ยวกับเรื่องนี้ แต่ในที่สุดก็ดูเหมือนว่าจะทำงาน
เฮนรี่

0

บางทีคุณกำลังมองหาไลบรารี ggplot2 ที่ช่วยให้คุณวางแผนสิ่งต่าง ๆ ในแบบที่ค่อนข้างสวย หรือคุณสามารถตรวจสอบเว็บไซต์นี้ที่ดูเหมือนว่ามีสาธารณูปโภคกราฟิก R มากมาย http://addictedtor.free.fr/graphiques/


0

อาจไม่ตรงกับสิ่งที่คุณต้องการ แต่ฟังก์ชั่น pairs.panels () ในแพ็กเกจ psych สำหรับ R อาจพิสูจน์ได้ว่ามีประโยชน์ มันให้ค่าสหสัมพันธ์ในเส้นทแยงมุมส่วนบน, เส้นเหลืองและจุดในเส้นทแยงมุมล่าง, และแสดงฮิสโตแกรมของคะแนนของตัวแปรแต่ละตัวในเส้นทแยงมุมของเมทริกซ์ ฉันคิดว่ามันเป็นหนึ่งในบทสรุปกราฟิกที่ดีที่สุดของข้อมูลโดยรอบ


0

สิ่งที่ฉันชอบคือDescTools

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

ซึ่งก่อให้เกิดชุดของแปลงดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่ และแสดงชุดของค่าที่สื่อความหมาย (รวมถึงค่าเฉลี่ย, ค่าเฉลี่ย, ค่ามัธยฐาน, ค่าเปอร์เซ็นต์, พิสัย, sd, IQR, ค่าความเบ้, และค่าความโด่ง): ป้อนคำอธิบายรูปภาพที่นี่

อีกทางหนึ่งแท็บล็อตยังดีมากสำหรับภาพรวมกราฟิก

มันผลิตแปลงแฟนซีด้วย tableplot(iris, sortCol=Species)

ป้อนคำอธิบายรูปภาพที่นี่

แม้จะมีรุ่น D3 ของtabplotเช่นtabplotd3

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.