엑셀 데이터를 읽어올 때에 가장 많이 사용하는 방법은
readxl 패키지에서 제공하는 read_excel() 함수이다.
다른 함수들과 차이점은 데이터에 문자가 입력되어 있는 경우,
stringsAsFactors를 argument를 TRUE를 지정하면 문자로 입력된 것은 R에서 factor로 인식되도록 할 수 있는 기능을 다른 함수들은 제공하지만 readxl::read_excel() 함수에서는 제공하지 않는다.
분석을 하다보면, chr로 되어 있는 모든 열을 factor로 변경할 필요가 있다.
그것을 해결하는 방법은 아래와 같다.
DF <- data.frame(x = letters[1:5],
stringsAsFactors = FALSE)
# 'data.frame': 5 obs. of 3 variables:
# $ x: chr "a" "b" "c" "d" ...
# $ z: chr "A" "B" "C" "D" ...
DF[sapply(DF, is.character)] <- lapply(DF[sapply(DF, is.character)], as.factor)
# 'data.frame': 5 obs. of 3 variables:
# $ x: Factor w/ 5 levels "a","b","c","d",..: 1 2 3 4 5
# $ z: Factor w/ 5 levels "A","B","C","D",..: 1 2 3 4 5
[출처] https://stackoverflow.com/questions/20637360/convert-all-data-frame-character-columns-to-factors/20637986