각 블록의 밀도는 각 행이 별도의 블록이라고 가정하고 V2/sum(V2)
이라고 가정합니다. 데이터
dat <- data.frame(V1 = 1:6, V2 = c(11613, 6517, 2442, 687, 159, 29))
를 들어
내가 얻을 : 우리가 R의 도구를 사용하여 확인할 수 있습니다
> with(dat, V2/sum(V2))
[1] 0.541474332 0.303865342 0.113862079 0.032032452 0.007413624 0.001352170
. 이다
> str(dens)
List of 7
$ breaks : int [1:7] 0 1 2 3 4 5 6
$ counts : int [1:6] 11613 6517 2442 687 159 29
$ intensities: num [1:6] 0.54147 0.30387 0.11386 0.03203 0.00741 ...
$ density : num [1:6] 0.54147 0.30387 0.11386 0.03203 0.00741 ...
$ mids : num [1:6] 0.5 1.5 2.5 3.5 4.5 5.5
$ xname : chr "dat2"
$ equidist : logi TRUE
- attr(*, "class")= chr "histogram"
참고 density
구성 요소 : 먼저 우리는 결과 객체에서
dens <- hist(dat2, breaks = c(0:6), plot = FALSE)
봐
원하는 값을 계산하는
hist()
를 사용하여 소형 주파수 테이블
dat2 <- unlist(apply(dat, 1, function(x) rep(x[1], x[2])))
을 확장
을
> dens$density
[1] 0.541474332 0.303865342 0.113862079 0.032032452 0.007413624 0.001352170
원래의 빈도 표 표현에서 직접 계산 한 내용과 일치합니다. 방금 대신 밀도를 그리려는 경우
플로팅에 관해서는, 다음 시도 :
dat <- transform(dat, density = V2/sum(V2))
plot(density ~ V1, data = dat, type = "n")
lines(density ~ V1, data = dat, col = "red")
을 강제 설정할 경우 축 제한 할 :
plot(density ~ V1, data = dat, type = "n", ylim = c(0,1))
lines(density ~ V1, data = dat, col = "red")