요즘 학교에서 데이터 사이언스 수업을 듣는데, 과제가 아주 많다.. ㅠㅠ
팀플이라서 항상 코드가 많은데, 뭐 다 구글링으로 만든거기도 해서 정리를 잘 안해뒀다.
그치만 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()를 통해 이렇게 분포가 된 것을 확인할 수도 있다.
'IT > 데이터 과학 & 인공지능' 카테고리의 다른 글
[데이터 사이언스] 검색 엔진은 어떤 원리로 작동할까? + tf-idf 유사도 예제 풀이 (0) | 2022.06.27 |
---|---|
[데이터 사이언스 / R] 결측치와 이상치(극단치)를 처리하는 방법 (예시) (0) | 2022.06.04 |
[데이터 사이언스 / R] 주성분 분석(PCA), 활용 예시 (feat. k-means 군집화) (0) | 2022.06.03 |
[데이터 사이언스] R - 숫자가 아닌 값(범주형,명목형)들을 숫자로 변환(매핑) (0) | 2022.04.29 |