R의 그래픽 데이터 개요 (요약) 기능


39

나는 전에 R 패키지에서 이와 같은 기능을 보았을 것이라고 확신하지만 광범위한 인터넷 검색 후에는 어디서나 찾을 수없는 것 같습니다. 내가 생각하고있는 함수는 주어진 변수에 대한 그래픽 요약을 생성하여 일부 그래프 (히스토그램 및 상자 및 수염 그림)와 출력, 평균, SD 등과 같은 세부 정보를 제공하는 텍스트를 생성했습니다.

이 함수가 기본 R에 포함되어 있지 않다고 확신하지만 사용한 패키지를 찾을 수 없습니다.

누구든지 이와 같은 기능을 알고 있습니까? 그렇다면 어떤 패키지에 들어 있습니까?

답변:


25

Frank Harrell의 Hmisc 패키지에는 주석 옵션이 포함 된 몇 가지 기본 그래픽이 있습니다 . summary.formula()관련 plot랩 기능을 확인하십시오 . 나는 또한 그 describe()기능을 좋아한다 .

자세한 내용 은 Hmisc 라이브러리 또는 S-Plus 소개 및 Hmisc 및 디자인 라이브러리를 참조하십시오 .

다음은 온라인 도움말에서 가져온 일부 사진 (있다 bpplt, describe그리고 plot(summary(...))) : 대체 텍스트 대체 텍스트 대체 텍스트

많은 다른 예는 온 - 라인에서 찾아 볼 수있는 매뉴얼 R 그래픽 참조 Hmisc을 (그리고 놓치지 마세요 RMS를 ).


이러한 기능은 모두 디자인이 아니라 Hmisc 패키지에 있습니다. 게시 해 주셔서 감사합니다.
Frank Harrell

세 개의 링크 중 두 개가 다운되었습니다.
Donnied

15

PerformanceAnalytics 패키지 의 함수 차트. 상관 을 적극 권장합니다 . 각 변수에 대한 커널 밀도 도표 및 히스토그램, 각 변수 쌍에 대한 산점도, 로우 스 평 활기 및 상관 관계 등 놀라운 정보를 단일 차트에 담았습니다. 내가 좋아하는 그래픽 데이터 요약 함수 중 하나입니다.

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

나는이 차트를 좋아한다!


2
+1, FWIW, ? scatterplot.matrix 에서 자동차 패키지는 당신에게 유사한 플롯을 줄 것이다 (예를 들어, 약간의 차이 / w / O를 R의 & 별 w).
gung-모니 티 복원

@gung 팁 덕분에 훌륭한 기능입니다.
Zach

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(). 인터페이스는 매우 자기 설명 적입니다.


딸랑이 (윈도우 바이너리 및 사용할 수 없음) Windows 용 지원되지 않습니다 XML을 필요로 :-(. cran.r-project.org/web/packages/XML/index.html
whuber

@ whuber : 너무 나쁘다! 그것은 아주 깔끔한 패키지입니다
nico

2
@whuber @nico XML 용 zip 파일은 stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.13 (및 다른 버전과 유사) 에서 찾을 수 있습니다 . 다른 문제가 있지만 결국에는 효과가있는 것 같습니다
Henry


0

아마 당신이 찾고있는 것이 아니지만 R의 psych 패키지의 pairs.panels () 함수가 유용 할 수 있습니다. 상단 대각선, 황토 선 및 하단 대각선의 점에 상관 관계 값을 제공하고 각 변수의 점수에 대한 히스토그램을 행렬의 대각선에 표시합니다. 나는 개인적으로 그것의 최고의 그래픽 요약 중 하나라고 생각합니다.


0

내가 가장 좋아하는 것은 DescTools

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

다음과 같은 일련의 플롯을 생성합니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 일련의 설명 값 (평균, 평균 SE, 중앙값, 백분위 수, 범위, sd, IQR, 왜도 및 첨도 포함)을 표시합니다. 여기에 이미지 설명을 입력하십시오

또는 tabplot 은 그래픽 개요에도 매우 좋습니다.

그것은 멋진 플롯을 생성합니다 tableplot(iris, sortCol=Species)

여기에 이미지 설명을 입력하십시오

의 D3 버전도있다 tabplot, 즉 tabplotd3는 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.