R기본
데이터 구조 참고 (링크)
데이터 테이블
⭐️ R에서 가장 중요 ⭐️
자연스럽게 데이터를 표현하는 데이터 타입
데이터 프레임 다루기
데이터 분석하기 위해 데이터 프레임을 만듦
데이터 프레임 선언 및 출력
> d1 <- data.frame(name=c("kim","lee","seo"),
ko=c(90,80,98),
en=c(100,78,92),
ma=c(99,68,88))
> d1
name ko en ma
1 kim 90 100 99
2 lee 80 78 68
3 seo 98 92 88
이렇게 코드로 넣을 수도 있고 import csv로 넣을 수도 있음
str 출력
변수 속성 확인
> str(d1)
'data.frame': 3 obs. of 4 variables:
$ name: chr "kim" "lee" "seo"
$ ko : num 90 80 98
$ en : num 100 78 92
$ ma : num 99 68 88
스칼라 타입으로 출력
> dname <- d1$name
> dname
[1] "kim" "lee" "seo"
> dko <- d1$ko
> dko
[1] 90 80 98
> mean(dko)
[1] 89.33333
$
로 값을 가져올 수 있다!
그외 다양한 출력 방법
> d1
name ko en ma
1 kim 100 100 99
2 lee 90 78 68
3 seo 99 92 88
> d1$ko[c(1,2)]
[1] 100 90
> d1[-1,c("ko","en","ma")]
ko en ma
2 90 78 68
3 99 92 88
첫 행은 제외하겠다! -1
> d1[,c("ko")]
[1] 100 90 99
벡터형태로 출력 [1]
> d1[,c("ko"),drop=F]
ko
1 100
2 90
3 99
데이터 프레임형태로 출력 : drop=F
옵션 사용
값 수정
> d1
name ko en ma
1 kim 90 100 99
2 lee 80 78 68
3 seo 98 92 88
> d1$ko <- c(100,90,99)
> d1
name ko en ma
1 kim 100 100 99
2 lee 90 78 68
3 seo 99 92 88
값 추가
> d1
name ko en ma
1 kim 100 100 99
2 lee 90 78 68
3 seo 99 92 88
> d1$si <- c(90,80,88)
> d1
name ko en ma si
1 kim 100 100 99 90
2 lee 90 78 68 80
3 seo 99 92 88 88
name, ko .. 는 컬럼명
데이터 입력
샘플데이터 링크
lib2rary(readxl)
read_excel
xls
파일을 로드
> library(readxl)
> ex1 <- read_excel("R-Data/data_ex.xls")
> ex1
# A tibble: 10 x 4
ID SEX AGE AREA
<dbl> <chr> <dbl> <chr>
1 1 F 50 서울
2 2 M 40 경기
3 3 F 28 제주
4 4 M 50 서울
5 5 M 27 서울
6 6 F 23 서울
7 7 F 56 경기
8 8 F 47 서울
9 9 M 20 인천
10 10 F 38 경기
read.table
txt
파일을 로드
header = TRUE
: 헤더 따로 로드skip = 1
: 헤더 생략
> ex12 <- read.table("R-Data/data_ex.txt", encoding="UTF-8", header = TRUE)
> ex12
ID SEX AGE AREA
1 1 F 50 서울
2 2 M 40 경기
3 3 F 28 제주
4 4 M 50 서울
5 5 M 27 서울
6 6 F 23 서울
7 7 F 56 경기
8 8 F 47 서울
9 9 M 20 인천
10 10 F 38 경기
colnames()
: 헤더 이름을 따로 지정
> ex12 <- read.table("R-Data/data_ex.txt", encoding="UTF-8", skip = 1)
> colnames(ex12) <- c("ID", "SEX", "AGE", "ADDR")
> ex12
ID SEX AGE ADDR
1 1 F 50 서울
2 2 M 40 경기
3 3 F 28 제주
4 4 M 50 서울
5 5 M 27 서울
6 6 F 23 서울
7 7 F 56 경기
8 8 F 47 서울
9 9 M 20 인천
10 10 F 38 경기
WorkShop
ws01.R
- 학번, 이름, 국어, 영어, 수학
- 10 명의 학생 정보를 엑셀에 기입
- R에서 data.frame으로 로드
- 각 학생의 성적 합과 평균을 데이터 프레임에 추가
> library(readxl)
> ws01 <- read_excel("R-Data/data_ws01.xlsx", sheet = "Sheet1")
> colSums(ws01[,c(3:5)]) # 열의 합
> rowSums(ws01[,c(3:5)]) # 행의 합
> ws01$sum <- rowSums(ws01[,c(3:5)])
> ws01$mean <- rowMeans(ws01[,c(3:5)])
> ws01
# A tibble: 10 x 7
학번 이름 국어 영어 수학 sum mean
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 s001 조건부 10 50 80 140 46.7
2 s002 산돌고 50 80 45 175 58.3
3 s003 자동줄 84 98 15 197 65.7
4 s004 페이지 82 65 98 245 81.7
5 s005 레이아 84 25 32 141 47
6 s006 검토보 84 54 71 209 69.7
7 s007 데이터 95 68 45 208 69.3
8 s008 수식 23 59 75 157 52.3
9 s009 입력 12 68 51 131 43.7
10 s010 그리기 84 55 52 191 63.7
참고 문서
ws02.R
- data.go.kr 또는 서울시에서 데이터 다운로드
- R에서 data.frame으로 로드
library(readxl)
ws02 <- read.csv("R-Data/2020bus2.csv",
sep=",", head=TRUE, encoding="UTF-8")
view(ws02)
- 2020년_버스노선별_정류장별_시간대별_승하차_인원_정보(08월).csv (링크)
- VS Code에서 열고 UTF-8로 저장
- R에서 위 코드 실행하여 로드
'개발로그 > TIL' 카테고리의 다른 글
코드업 1084번 시간 초과 문제 (자바) (0) | 2020.12.27 |
---|