요즘 학교에서 데이터 사이언스 수업을 듣는데, 과제가 아주 많다.. ㅠㅠ

팀플이라서 항상 코드가 많은데, 뭐 다 구글링으로 만든거기도 해서 정리를 잘 안해뒀다.

그치만 r 코드 관련 자료는 그렇게 엄청 많지도 않아서, 검색해도 잘 안나오기도 한다. 원하는 자료를 찾으려면 영어로 검색하는 게 훨씬 쉬울 정도이다.

 

그래서 내가 만든 코드라도 남들에게 도움이 될까해서 올려본다.

 

댓글과 지적 환영합니다~

 

nomi_data <- data

nomi_data <- transform(nomi_data, 
                  sepal_length = cut(sepal_length, breaks = c(seq(min(data[1]), max(data[1]), length=4)),
                  include.lowest = TRUE,
                  right = FALSE,
                  labels = c("S", "M", "L")
                  ),
                  sepal_width = cut(sepal_width, breaks = c(seq(min(data[2]), max(data[2]), length=4)),
                  include.lowest = TRUE,
                  right = FALSE,
                  labels = c("S", "M", "L")
                  ),
                  petal_length = cut(petal_length, breaks = c(seq(min(data[3]), max(data[3]), length=4)),
                  include.lowest = TRUE,
                  right = FALSE,
                  labels = c("S", "M", "L")
                  ),
                  petal_width = cut(petal_width, breaks = c(seq(min(data[4]), max(data[4]), length=4)),
                  include.lowest = TRUE,
                  right = FALSE,
                  labels = c("S", "M", "L")
                  ))

nomi_data

 

참고로, data는 iris 데이터셋의 dataframe을 미리 불러온 것이다.

명목형 변수로 바꾼 값들은 nomi_data라는 형식으로 새롭게 저장해준다.

 

seq(min(data[i]), max(data[i]), length=4))를 통해, 해당 속성에서 최대값과 최소값 사이의 4개의 구간의 경계점을 구했다.

(참고로, 구해온 값은 벡터 형식)

그리고 cut()의 breaks 변수에 이를 넣어 그 구간에 맞춰 나누어주었다. 이때, 각각 S, M, L의 3개의 명목형 변수를 붙여주었다.

length에 n+1을 넣고 labels에 n개의 라벨을 넣어준다고 생각하자!  

 

참고로 라벨 이름은 스몰, 미들, 라지 사이즈의 이니셜을 따와 붙인 것이다. ㅎㅎ

 

코드 실행 예시.

내가 사용한 dataset이 150줄인가 그렇다. 15페이지까지 있으니 뒤로 넘기면 더 다양한 결과를 볼 수 있을 것이다.

 

summary()를 통해 이렇게 분포가 된 것을 확인할 수도 있다.

+ Recent posts