read.csv를 하는데 factor level이 올바르지 않다고 warning이 발생합니다.

조회수 2001회

여러개의 *.csv 파일을 read하여 한개의 data frame으로 만들고 있습니다.

filelist <- list.files(pattern=".csv", recursive=T)
temp <- do.call(rbind,lapply(filelist, read.csv()))

실행하면 다음과 같은 warning 들이 발생을 합니다.

경고 메시지:

1: In [<-.factor(*tmp*, ri, value = c(-85.94, -86, -86, ... : 요인의 수준(factor level)이 올바르지 않아 NA가 생성되었습니다. 1

여러가지 검색해 보았는데, 제가 사용하고 있는 Code에 어떤 Option을 넣어줘야 하는지 잘 모르겠습니다.

도움 주시면 감사하겠습니다.

감사합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 올려 주신 코드에 제가 가지고 있는 csv파일로 테스트를 하면, 말씀하신 경고가 아니라 다른 에러가 발생합니다.

    Error in read.table(file = file, header = header, sep = sep, quote = quote, : 기본값이 없는 인수 "file"가 누락되어 있습니다

    그래서, 다음과 같이 수정하면

    filelist <- list.files(pattern=".csv")
    temp <- do.call(rbind, lapply(filelist, function(i) {
        read.csv(i, header=F)
    }))
    

    오류 없이 정상적으로 temp에 한 데이터프레임으로 리턴됩니다.

    참고로 사용한 csv파일은 아래처럼 생겼습니다.

    1,2,3,4,5
    6,7,8,9,10
    11,12,13,14,15
    

    사용하신 csv파일의 내용을 확인해볼 필요가 있을 듯 합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)