반응형
경고 메시지 :`…`: 유효하지 않은 요인 수준, NA 생성
이 경고 메시지가 나타나는 이유를 모르겠습니다.
> fixed <- data.frame("Type" = character(3), "Amount" = numeric(3))
> fixed[1, ] <- c("lunch", 100)
Warning message:
In `[<-.factor`(`*tmp*`, iseq, value = "lunch") :
invalid factor level, NA generated
> fixed
Type Amount
1 <NA> 100
2 0
3 0
경고 메시지는 "Type"변수가 요인이되고 "점심"이 정의 된 수준이 아니기 때문입니다. stringsAsFactors = FALSE
데이터 프레임을 만들 때 플래그를 사용하여 "Type"을 문자로 만듭니다.
> fixed <- data.frame("Type" = character(3), "Amount" = numeric(3))
> str(fixed)
'data.frame': 3 obs. of 2 variables:
$ Type : Factor w/ 1 level "": NA 1 1
$ Amount: chr "100" "0" "0"
>
> fixed <- data.frame("Type" = character(3), "Amount" = numeric(3),stringsAsFactors=FALSE)
> fixed[1, ] <- c("lunch", 100)
> str(fixed)
'data.frame': 3 obs. of 2 variables:
$ Type : chr "lunch" "" ""
$ Amount: chr "100" "0" "0"
CSV 파일에서 직접 읽는 경우 다음과 같이하십시오.
myDataFrame <- read.csv("path/to/file.csv", header = TRUE, stringsAsFactors = FALSE)
유연한 접근 방식 은 다음과 같습니다 . 특히 모든 경우에 사용할 수 있습니다.
- 하는 단 하나의 컬럼에 영향을 미치는 , 또는
- 은
dataframe
(예를 들어 이전의 작업에서 얻어진 도포 한 즉시 파일 열기하지 하거나 새로운 데이터 프레임 생성).
첫째, 유엔 - 인수 분해 사용하여 문자열을 as.character
, 다음, 기능 및 재 인수 분해 와 as.factor
(또는 간단히 factor
) 기능 :
fixed <- data.frame("Type" = character(3), "Amount" = numeric(3))
# Un-factorize (as.numeric can be use for numeric values)
# (as.vector can be use for objects - not tested)
fixed$Type <- as.character(fixed$Type)
fixed[1, ] <- c("lunch", 100)
# Re-factorize with the as.factor function or simple factor(fixed$Type)
fixed$Type <- as.factor(fixed$Type)
이 문제를 해결하는 가장 쉬운 방법은 열에 새로운 요소를 추가하는 것입니다. 레벨 기능을 사용하여 보유한 요소 수를 확인한 다음 새 요소를 추가하십시오.
> levels(data$Fireplace.Qu)
[1] "Ex" "Fa" "Gd" "Po" "TA"
> levels(data$Fireplace.Qu) = c("Ex", "Fa", "Gd", "Po", "TA", "None")
[1] "Ex" "Fa" "Gd" "Po" " TA" "None"
참고 URL : https://stackoverflow.com/questions/16819956/warning-message-in-invalid-factor-level-na-generated
반응형
'Programing' 카테고리의 다른 글
클래스에서 생성자를 비공개로 사용하는 것은 무엇입니까? (0) | 2020.07.07 |
---|---|
Postgres / SQL에서 두 정수의 최소 / 최대를 얻는 방법은 무엇입니까? (0) | 2020.07.07 |
자식에서 '둘 다 추가'병합 충돌을 해결 하시겠습니까? (0) | 2020.07.06 |
gcc / cmake를 사용하여 64 비트 Linux 시스템에서 32 비트 바이너리를 컴파일하는 방법 (0) | 2020.07.06 |
PostgreSQL 8.4에서 열 데이터 유형을 문자에서 숫자로 변경하는 방법 (0) | 2020.07.06 |