자료를 분석하기에 앞서 먼저 자료를 분석에 적합한 상태로 가공해야 한다. 행을 선택할 때는 data[행,]을 코딩하면 된다. 일부 분석대상자만 선택 혹은 제외하고 싶을 때 사용할 수 있다. [R] 열을 선택할 때는 data[,열]을 코딩하면 된다. 일부 변수만 선택하고 싶을 때 사용할 수 있다. [R] 열을 선택하는 또 다른 방법은 data$변수를 코딩하는 것이다. [R] 이를 응용해서 특정 행과 열을 동시에 선택할 때는 data[행,열]로 쓰면 된다. [R] 자료에서 변수가 특정 값을 가진 경우만 선택하고 싶다면 어떻게 할까? 1. data[data$변수==특정값,] [R] 2. subset( )함수 이용 [R] 마지막으로 변수 값이 결측치인 경우를 제거하고 싶다면 is.na( )함수를 이용할 수 있다. [R]
특정조건을 만족하는 Row 삭제 먼저 예제 데이터를 만들어 data.csv에 저장하였습니다. 이 파일을 읽어 data에 저장합니다. data=read.csv("test.csv") data ID a b c d e f g 1 101 NA NA NA NA NA NA NA 2 102 9 10 NA NA NA NA NA 3 103 NA 9 NA NA NA NA NA 4 104 NA NA 9 9 NA NA NA 5 105 NA NA 1 8 9 NA NA 6 106 NA NA NA NA NA NA NA 7 107 NA 2 NA NA NA NA NA 8 108 NA NA 4 7 NA NA 9 다음으로 x라는 벡터를 읽어 NA값을 제외한 후 x에 9만 포함되어 있으면 TRUE, 9 이외에 다른 값이 있으면 FALSE를 반환하는 함수를 만듭니다. seek9only=function(x){ x=x[!is.na(x)] if(length(unique(x))!=1)result<-FALSE elseif(unique(x)==9) result<-TRUE result } apply 함수를 이용해 data의 열을 기준으로 이 함수를 적용시킵니다. select<-apply(data,2,seek9only) select ID a b c d e f g FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE 원하는 데이터는 다음과 같이 고르시면 됩니다. data1<-data[!select] data1 ID b c d f 1 101 NA NA NA NA 2 102 10 NA NA NA 3 103 9 NA NA NA 4 104 NA 9 9 NA 5 105 NA 1 8 NA 6 106 NA NA NA NA 7 107 2 NA NA NA 8 108 NA 4 7 NA |