Script )
x=c(1,2,3) y=c(3,4,5) z=c(3,1,2) # 집합 union(x,y) #합집합 intersect(x,y) #교집합 setdiff(x,y) #차집합 (x에서 y와 동일한 요소 제거된 것들 출력) setequal(x,z) # x와 z에 동일한 요소 있는지 확인 => True, False # 행렬 # n차원 배열 생성 x= array(1:5, c(2,4)) # 첫 번째 인수는 행렬에 넣을 값을 지정, 두 번째 인수에는 만들 행렬을 벡터로 지정 (2*4행렬) x[1,] # 1행 요소 값 출력 x[.2] # 2열 요소 값 출력 #행과 열의 이름 생성 dimnamex=list(c("a","b"),c("1st","2nd","3rd","4th")) x=array(1:5,c(2,4),dimnames=dimnamex) x x["a",] x[,"4th"] x["a","3rd"] # 행열을 matrix함수로 제작 x=1:12 m.x<-matrix(x,nrow=3) # x데이터를 가지고 3행인 행렬을 만듬 m.x # 데이터를 행 단위(가로)로 배치 matrix(x,nrow=3,byrow=T) # 벡터를 합쳐서 행렬을 만듬 v1=c(1,2,3,4) v2=c(5,6,7,8) v3=c(9,10,11,12) cb.m<-cbind(v1,v2,v3) # 벡터들을 열 단위(세로)로 배치 rbind(v1,v2,v3) # 벡터들을 행 단뒤(가로)로 배치 cb.m[3,3] cb.m[3,"v3"] # 정방행렬 만들기 x= array(1:4,dim=c(2,2)) y=array(5:8, dim=c(2,2)) x;y # 행렬 연산 x+y x*y x[1,]*y[1,] x %*% y # 수학적인 행렬 곱셈 # 전치 행렬 (열과 행을 바꿈) t(x) # 역행렬 inv.x<-solve(x) # 행렬 * 역행렬 = 항등행렬(대각선 모두 1)이다. x%*%inv.x # 행렬식 (2*2행렬에서 행렬식은 ad-bc임) a b # c d det(x) # 행렬의 평균값 구하기 x=array(1:12,c(3,4)) x apply(x,1,mean) # 두 번째 인수가 1이면 -> 행 중심으로 평균값 구하기 apply(x,2,mean) # 두 번째 인수가 2이면 -> 열 중심으로 평균값 구하기 # 행과 열의 정보 알기 dim(x) # 순열 만들기 (호출할 때마다 값들 위치가 변함) sample(x) sample(x,10) # 배열 요소 중 10개를 골라 추출 sample(x,10,prob=c(1:12)/24) # prob인수에 벡터로 각 요소별 추출 확률을 정할 수 있음! sample(x,10,prob=c(100,100,100,100,100,100,100,100,100,100,0,0)) # 1~12요소 중 1~10만 나오게 하기!! sample(10) # 요소가 1~10인 배열 중 숫자 10개를 골라 추출 # 행렬 다른 방법으로 출력 x x[2:3,] # 2행~3행만 출력 x[,1:3] # 1열~3열만 출력 # 3차원 배열 x<-array(1:12,dim=c(2,2,3)) x x[2,2,3] x[2,2,1] # 데이터 프레임 (표 형태의 데이터) name=c("철수","춘향","길동") age=c(22,20,25) gender=factor(c("M",'F','M')) blood.type=factor(c("A","O","B")) patients=data.frame(name,age,gender,blood.type) # data.frame함수만 사용하면 된다. patients # 이처럼 한번에 쓸 수도 있음 patients1<-data.frame(name=c("철수","춘향","길동"), age=c(22,20,25), gender=factor(c("M",'F','M')), blood.type=factor(c("A","O","B")) ) patients1 patients$name # 데이터 프레임의 속성 값 가져오기 => patients프레임의 name속성 값들 가져오기 # 데이터 프레임에 유용한 함수 살펴보기 data() # r에서 지원하는 데이터 프레임 목록 보기 head(cars) # cars데이터프레임을 위부터 보기 (기본적으로 6행만 보여줌) attach(cars) # 데이터 프레임의 속성을 변수처럼 사용 speed mean(speed) mean(dist) max(dist) boxplot(dist) detach(cars) # 변수처럼 사용하는 속성을 해제 # 해제된 뒤에 속성으로 함수처리를 하고 싶을 때는 with를 이용한다. with(cars,mean(speed)) # 20 초과인 데이터만 추출 (데이터 프레임,속성을 이용한 처리,나타낼 속성 값들) subset(cars,speed>20) subset(cars,speed>20,dist) # speed가 20이상인 dist출력
북 참고) R로 배우는 데이터 과학