development

여러 경고“알 수없는 열”수정

big-blog 2020. 6. 22. 07:17
반응형

여러 경고“알 수없는 열”수정


모든 유형의 명령 (예 : 패키지에 업데이트 설치에 대한 str (x))에 대해 "알 수없는 열"이라는 여러 경고가 지속적으로 표시되며이를 디버깅하거나 수정하는 방법을 잘 모르겠습니다.

"알 수없는 열"이라는 경고는 내가 이름을 바꾼 tbl_df의 변수와 명확하게 관련되어 있지만 tbl_df와 관련이없는 것처럼 보이는 모든 종류의 명령에서 경고가 나타납니다 (예 : 패키지에 업데이트 설치, str (x), 여기서 x는 단순히 문자형 벡터).


업데이트 : 이 문제는 RStudio v1.1.103 이상에서 @ kevin-ushey 에 의해이 커밋 에서 부분적으로 수정되었습니다 . 여전히 빈도는 낮지 만 나타납니다.

이는 RStudio의 진단 도구 (코드에 경고 및 가능한 실수를 표시하는 도구)의 문제입니다.

https://support.rstudio.com/hc/en-us/community/posts/115001180488-Diagnostics-and-tibble-warning

해결 방법으로 열린 파일의 시작 부분에 추가 할 수 있습니다.

# !diagnostics off

그런 다음 파일을 저장하면 경고가 더 이상 표시되지 않습니다.

기본 설정 / 코드 / 진단에서 진단 기능을 비활성화 할 수도 있습니다.

RStudio의 진단 도구가 소스 코드를 구문 분석하여 오류를 감지하고 진단 검사를 수행하면 초기화되지 않은 티블의 열에 액세스하여 경고를 표시하기 때문에 경고가 나타납니다. 관련이없는 항목을 실행하기 때문에 경고가 표시되지 않습니다. RStudio 진단 프로그램을 실행할 때 (파일을 저장 한 다음 수정 한 경우 ...)


같은 문제가 발생했는데 왜 그런지 모르겠지만 문제 가 발생 했을 때 핀 다운 하여 문제가 발생하는 것을 막을 수있었습니다.

문제는 인덱싱에서 파생 된 새 열을 기본 R 데이터 프레임과 Tibble 데이터 프레임에 추가하는 것 같습니다. age기본 R 데이터 프레임에 새 열 ( )을 추가하는 다음 예를 보자 .

base_df <- data.frame(id = c(1:3), name = c("mary", "jill","steve"))

base_df$age[base_df$name == "mary"] <- 47

경고를 반환하지 않고 작동합니다. 그러나 똑딱 거리는 소리로 똑같은 일을하면 경고가 발생합니다 (따라서 이상하고 도발되지 않은 여러 경고 문제가 발생한다고 생각합니다).

library(tibble)

tibble_df <- tibble(id = c(1:3), name = c("mary", "jill","steve"))

tibble_df$age[tibble_df$name == "mary"] <- 47

Warning message:
Unknown column 'age' 

이것을 피하는 더 좋은 방법이 있지만, 먼저 NAs 벡터를 생성 하면 작업 이 수행된다는 것을 알았 습니다.

tibble_df$age <- NA

tibble_df$age[tibble_df$name == "mary"] <- 47

"dplyr"패키지를 사용할 때이 문제에 직면했습니다.
"dplyr"라이브러리에서 "group_by"기능을 사용한 후이 문제가 발생하는 경우 :

변수를 그룹 해제하면 알 수없는 열 경고 문제가 해결됩니다. 때로는 문제가 해결 될 때까지 그룹 해제를 여러 번 반복해야했습니다.


클래스를 변환하면 data.frame문제가 해결되었습니다.

library(dplyr)
df <- data.frame(id = c(1,1:3), name = c("mary", "jo", "jill","steve"))
dfTbl <- df %>%
  group_by(id) %>%
  summarize (n = n())
class(dfTbl) # [1] "tbl_df"     "tbl"        "data.frame"
dfTbl = as.data.frame(dfTbl)
class(dfTbl) # [1] "data.frame"

@adts에서 부분 스크립트를 차용


dyplyr 블록을 사용하여 생성 된 티블을 제외 하고는이 문제도 발생했습니다. 다음은 동일한 오류가 발생하는 방법을 보여주기 위해 sabre의 코드를 약간 수정 한 것입니다.

library(dplyr)

df <- data.frame(id = c(1,1:3), name = c("mary", "jo", "jill","steve"))

t <- df %>%
  group_by(id) %>%
  summarize (n = n())

t
str(t)


t$newvar[t$id==1] <- 0

다음 열을 선택하고 싶다고 가정 해 봅시다.

best.columns = 'id'

나에게 다음과 같은 경고가 나왔다.

df%>% select_(one_of(best.columns))

While this worked as expected, although, as far as I know dplyr, this should be identical.

df%>% select_(.dots = best.columns)

I had this problem when dealing with tibble and lapply functions together. The tibble seemed to save things as a list inside the dataframe.

I solved it by using unlist before adding the results of an lapply function to the tibble.

참고URL : https://stackoverflow.com/questions/39041115/fixing-a-multiple-warning-unknown-column

반응형