[r] 작업 공간을로드 할 때 “나쁜 매직 넘버”오류의 원인과이를 방지하는 방법은 무엇입니까?
내 R 작업 영역을로드하려고했는데이 오류가 발생했습니다.
Error: bad restore file magic number (file may be corrupted) -- no data loaded
In addition: Warning message:
file ‘WORKSPACE_Wedding_Weekend_September’ has magic number '#gets'
Use of save versions prior to 2 is deprecated
나는 기술적 인 세부 사항에 특별히 관심이 없지만 주로 내가 어떻게 발생했는지, 그리고 어떻게 예방할 수 있는지에 관심이 있습니다. 상황에 대한 몇 가지 참고 사항은 다음과 같습니다.
- 부트 캠프 파티션에서 Windows XP를 실행하는 MacBook Pro에서 R 2.15.1을 실행하고 있습니다.
- 이 작업 공간 파일의 무게는 80kb에 불과하지만 다른 모든 파일은 일반적으로 10,000 이상이기 때문에 분명히 잘못된 것이 있습니다.
- 주말 동안 저는 R에서 외부 모델링 프로그램을 실행하고 출력을 다른 객체에 저장했습니다. 며칠 동안 모델을 여러 번 반복했습니다. 예 : output_Saturday <-call_model ()
- 모델 출력에는 특별한 것이 없으며 베타, VC 매트릭스, 모델 사양 등에 대한 슬롯이있는 목록 일뿐입니다.
답변
실수 load()
로 source()
또는 대신 사용했을 때 오류가 발생했습니다 readRDS()
.
답변
또한 v3.5.0 이후의 R 버전 변경 사항을 요약 한 R Core Team의 문서에서 다음 사항에 주목할 가치가 있습니다 ( 여기 ).
R에는 ALTREP 프레임 워크 개체의 사용자 지정 직렬화를 지원하는 새로운 직렬화 형식 (버전 3)이 있습니다. 형식 3의 직렬화 된 데이터는 버전 3.5.0 이전의 R 버전에서 읽을 수 없습니다.
v3.6.0에서 작업 공간을 저장 한 다음 v3.4.2를 사용하는 동료와 파일을 공유 할 때이 문제가 발생했습니다. 저장 기능에 “version = 2″를 추가하여 문제를 해결할 수있었습니다.
답변
파일 이름이 “myfile.ext”라고 가정합니다.
로드하려는 파일이 R 스크립트가 아닌 경우 사용할 수 있습니다.
source("myfile.ext")
readRDS
함수를 시도하고 변수 이름에 할당 할 수 있습니다 .
my.data <- readRDS("myfile.ext")
답변
매직 넘버는 파일의 처음 몇 바이트에 파일 유형을 나타내는 마커가있는 UNIX 유형 시스템에서 제공됩니다.
이 오류는 유효하지 않은 파일 유형을 R로로드하려고 함을 나타냅니다. 어떤 이유로 R은이 파일을 더 이상 R 작업 공간 파일로 인식하지 않습니다.
답변
readr
패키지를 설치 한 다음 library(readr)
.
답변
load()
사용하는 대신 rds 개체 를 시도 할 때도 발생합니다.
object <- readRDS("object.rds")
답변
R 패키지를 빌드 할 때 오류가 발생했습니다 (roxygen2 사용).
내 경우에는 원인은 내가 저장 한 것이 었 data/mydata.RData
로 saveRDS()
보다는 save()
. 예save(iris, file="data/iris.RData")
이것은 나를 위해 문제를 해결했습니다. 여기 에서이 정보를 찾았 습니다
와 있음을 또한 참고 save()
/ load()
개체가 처음으로 저장되어있는 같은 이름에로드 (아직 당신이 처음에 저장된 때 가지고 있던 이름으로 R 환경에로드 될 때까지 즉, 당신이 그것을 이름을 바꿀 수 없습니다).