티스토리 뷰
반응형
with 절의 사용법과 선형보간 하는 방법을 한번 정리해본다. 우선 기초 데이터가 될 데이터프레임을 하나 만든다.
df <- data.frame(x = 1:3, y = 1:3 * 2)
df
# 출력결과
x y
1 1 2
2 2 4
3 3 6
선형보간을 하기위해서 x 값을 50개로 나눈다.
seq(min(df$x), max(df$x), length = 50)
# 출력결과
[1] 1.000000 1.040816 1.081633 1.122449 1.163265 1.204082 1.244898 1.285714 1.326531
[10] 1.367347 1.408163 1.448980 1.489796 1.530612 1.571429 1.612245 1.653061 1.693878
[19] 1.734694 1.775510 1.816327 1.857143 1.897959 1.938776 1.979592 2.020408 2.061224
[28] 2.102041 2.142857 2.183673 2.224490 2.265306 2.306122 2.346939 2.387755 2.428571
[37] 2.469388 2.510204 2.551020 2.591837 2.632653 2.673469 2.714286 2.755102 2.795918
[46] 2.836735 2.877551 2.918367 2.959184 3.000000
with 절로 사용하면, df 변수를 중복으로 사용하지 않고 간단히 변수를 선언할 수 있다.
with(df, seq(min(x), max(x), length = 50))
# 출력결과
[1] 1.000000 1.040816 1.081633 1.122449 1.163265 1.204082 1.244898 1.285714 1.326531
[10] 1.367347 1.408163 1.448980 1.489796 1.530612 1.571429 1.612245 1.653061 1.693878
[19] 1.734694 1.775510 1.816327 1.857143 1.897959 1.938776 1.979592 2.020408 2.061224
[28] 2.102041 2.142857 2.183673 2.224490 2.265306 2.306122 2.346939 2.387755 2.428571
[37] 2.469388 2.510204 2.551020 2.591837 2.632653 2.673469 2.714286 2.755102 2.795918
[46] 2.836735 2.877551 2.918367 2.959184 3.000000
x값 50개에 대하여 선형보간한 결과이다. 원래는 3개의 쌍의 값만 있었지만, 해당값을 바탕으로 50개의 x, y 값을 만들어냈다.
xgrid = with(df, seq(min(x), max(x), length = 50))
# 선형보간
approx(x = df$x, y = df$y, xout = xgrid)
with(df, approx(x, y, xgrid) # 동일한 결과가 나온다.
# 출력결과
$x
[1] 1.000000 1.040816 1.081633 1.122449 1.163265 1.204082 1.244898 1.285714 1.326531
[10] 1.367347 1.408163 1.448980 1.489796 1.530612 1.571429 1.612245 1.653061 1.693878
[19] 1.734694 1.775510 1.816327 1.857143 1.897959 1.938776 1.979592 2.020408 2.061224
[28] 2.102041 2.142857 2.183673 2.224490 2.265306 2.306122 2.346939 2.387755 2.428571
[37] 2.469388 2.510204 2.551020 2.591837 2.632653 2.673469 2.714286 2.755102 2.795918
[46] 2.836735 2.877551 2.918367 2.959184 3.000000
$y
[1] 2.000000 2.081633 2.163265 2.244898 2.326531 2.408163 2.489796 2.571429 2.653061
[10] 2.734694 2.816327 2.897959 2.979592 3.061224 3.142857 3.224490 3.306122 3.387755
[19] 3.469388 3.551020 3.632653 3.714286 3.795918 3.877551 3.959184 4.040816 4.122449
[28] 4.204082 4.285714 4.367347 4.448980 4.530612 4.612245 4.693878 4.775510 4.857143
[37] 4.938776 5.020408 5.102041 5.183673 5.265306 5.346939 5.428571 5.510204 5.591837
[46] 5.673469 5.755102 5.836735 5.918367 6.000000
수치를 사용하기 위해서 쓰기도 하지만, 아래와 같이 그래프에 색깔 입힐때, 그라데이션을 줄 수도 있다.
xgrid = with(df, seq(min(x), max(x), length = 50))
interp <- data.frame(
x = xgrid,
y = approx(df$x, df$y, xout = xgrid)$y
)
ggplot(interp, aes(x, y, colour = y)) +
geom_line(size = 2) +
geom_point(data = df, size = 5)
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MySQL
- ipTIME
- R
- MyBatis
- ggplot
- heroku
- python
- MongoDB
- vagrant
- 마인크래프트
- 맥북
- 이클립스
- javascript
- Google Chart Tools
- 셀프개통
- 알뜰요금제
- java
- ggplot2
- Oracle
- ubuntu
- 자급제폰
- ktm모바일
- github
- docker
- eclipse
- 아이맥
- SVN
- 도넛차트
- Spring
- 막대그래프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함