Script )
# 01 파일 읽고 쓰기 # 텍스트 파일을 읽어올 때는 read.table함수를 이용한다. # 파일의 첫 행이 각 열의 변수로 쓰게 하려면 header=T를 해야 된다. (아니면 첫 행도 데이터로 쓴다.) students = read.table("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students1.txt", header = T) students str(students) students$name # 팩터형 # 파일을 읽을 때 문자열을 범주형으로 인식하지 않도록 설정 (초깃값:T) / as.is=T로 해도 같은 결과 <파일을 있는 형태 그대로 읽음> students2 = read.table("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students12.txt", header = T, stringsAsFactors=F) students2 str(students2) students2$name # 캐릭터형 # 파일을 읽을 때 구분 기호를 사용할 때는 (sep=",")와 같이 인수를 준다. students3 = read.table("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students13.txt", header = T,sep=",") str(students3) # NA가 문자열로 인식해서 COMPUTER열 전체가 (문자열 처리하기 쉽게)팩터형으로 인식됨 # NA(결측값)의 문자열이 " NA"인 것을 프로그램으로 알려줘서 숫자로 만듬 <띄어쓰기 주의!!> students4 = read.table("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students13.txt", header = T,sep=",",na.strings=" NA") str(students4) # NA가 숫자로 인식되서 COMPUTER열이 정상적임 # csv파일을 읽어올 때는 read.table함수를 이용한다. students=read.csv("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students.csv") str(students) # 파일 쓰기 students = read.table("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students1.txt", header = T,as.is=T) # students파일에 있는 데이터를 <큰 따옴표를 붙여서> 모두 복사하고 output.txt에 붙여 넣어서 저장 write.table(students, file="C:/Users/aaa/Desktop/Repository/Rsource/Sources/output.txt") # students파일에 있는 데이터를 <큰 따옴표를 붙이지 않고> 모두 복사하고 output.txt에 붙여 넣어서 저장 write.table(students, file="C:/Users/aaa/Desktop/Repository/Rsource/Sources/output2.txt",quote=F) # 02 데이터 정제를 위한 조건문과 반복문 test=c(15, 20, 30, NA, 45) # 40미만의 데이터 추출 test[test<40] # 3으로 나눈 나머지가 0이 아닌 데이터 추출 test[test%%3!=0] # NA데이터만 추출 test[is.na(test)] # 짝수이면서 NA가 아닌 데이터 출력 test[test%%2==0 & !is.na(test)] characters=data.frame(name=c("길동","춘향","철수"),age=c(30,16,21),gender=factor(c("M",'F','M')),math=c(70,80,90)) characters # 성별이 여성인 행 추출 <데이터 프레임 행을 추출할 때는 ','가 뒤에 꼭 붙어야 한다!!> characters[characters$gender=="F",] # 나이가 30미만이고 성별이 남성인 행 추출 characters[characters$age<30 & characters$gender=="M",] # 조건문 x=5 if(x%%2 ==0){ print("x is even number") } else { print("x is odd number") } # 데이터에 100초과 갑과 음수값이 포함되어 있음 students=read.csv("C:/Users/aaa/Desktop/Repository/Rsource/Sources/students.csv") students # 2,3,4열 중 0~100 이외의 값은 NA로 처리함 # ifelse문의 첫번째 인수에는 정상으로 처리할 조건, 두 번째 인수에는 비정상인 것들을 처리하는 방향으로 정함 students[,2]=ifelse(students[,2]>=0 & students[,2]<=100, students[,2],NA) students[,3]=ifelse(students[,3]>=0 & students[,3]<=100, students[,3],NA) students[,4]=ifelse(students[,4]>=0 & students[,4]<=100, students[,4],NA) students # 반복문 # 1부터 10까지 출력하는 소스 i=1 repeat{ if(i>10){break} else{print(i) i=i+1} } # 구구단 2단 만들기 i=1 while(i<10){ print(paste(2,"x",i,"=",2*i)) i=i+1 } # for문 사용하기 for(i in 1:10){ print(paste(2,"^",i,"=",2^i)) } # 구구단 전부 만들기 for(i in 1:9){ for(j in 1:9){ print(paste(i,"x",j,"=",i*j)) } }
P. s. 디렉토리는 알아서 변경해서 사용
북 참고) R로 배우는 데이터 과학