[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

나는 기술적 인 세부 사항에 특별히 관심이 없지만 주로 내가 어떻게 발생했는지, 그리고 어떻게 예방할 수 있는지에 관심이 있습니다. 상황에 대한 몇 가지 참고 사항은 다음과 같습니다.

  1. 부트 캠프 파티션에서 Windows XP를 실행하는 MacBook Pro에서 R 2.15.1을 실행하고 있습니다.
  2. 이 작업 공간 파일의 무게는 80kb에 불과하지만 다른 모든 파일은 일반적으로 10,000 이상이기 때문에 분명히 잘못된 것이 있습니다.
  3. 주말 동안 저는 R에서 외부 모델링 프로그램을 실행하고 출력을 다른 객체에 저장했습니다. 며칠 동안 모델을 여러 번 반복했습니다. 예 : output_Saturday <-call_model ()
  4. 모델 출력에는 특별한 것이 없으며 베타, 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.RDatasaveRDS()보다는 save(). 예save(iris, file="data/iris.RData")

이것은 나를 위해 문제를 해결했습니다. 여기 에서이 정보를 찾았 습니다

와 있음을 또한 참고 save()/ load()개체가 처음으로 저장되어있는 같은 이름에로드 (아직 당신이 처음에 저장된 때 가지고 있던 이름으로 R 환경에로드 될 때까지 즉, 당신이 그것을 이름을 바꿀 수 없습니다).