2011-01-28 4 views

답변

4
attach(file);ls(pos=2);detach(pos=2) 

그렇게 할 것입니다. 아마. #untested

+0

'분리()'기본적으로 검색 경로에서 두번째 항목을 분리하기 때문에 당신은 detach''에서'POS를 = 2' 생략 할 수 있습니다. – aL3xa

+1

리플리가 제안한 제안을 테스트 해 보았습니다. 필자는 필자가 사용했던 다소 큰 데이터 세트를로드했기 때문에 아카이브에서 찾았지만 제출하지 않았습니다. –

+0

@DWin 무슨 해결책? URL? – Spacedman

6

개체를로드하지 않고도 그렇게 할 수 있다고 생각하지 않습니다.

래퍼를 사용하여 R 개체를 save으로 저장할 수있는 해결책은 개체와 개체의 구조를 특수한 Rdata 파일로 저장하는 것입니다. 나중에 load에 랩퍼와 함께 특수 2 진 파일을로드 할 수 있습니다. 여기에서 데이터의 구조 만 나열하도록 지정할 수 있습니다.

아주 기본적인 패키지 인 saves에서 CRAN에서 찾을 수 있습니다.


업데이트 : load.lssave.ls 대신 save 및 부하와 매우 간단한 메타 데이터 솔루션

save.ls <- function(x, file) { 
    save(list=x, file=file) 
    l <- ls() 
    save(l, file=paste(file, 'ls', sep='')) 
} 
load.ls <- function(file) { 
    attach(paste(file, 'ls', sep='')); 
    return(l) 
    detach(pos=2) 
} 

저장을 만들어 테스트합니다. 메타 정보는 별도의 파일 ("ls"로 끝남)에 저장되지만 메커니즘은 쉽게 향상 될 수 있습니다. Rdata 객체와 메타 데이터를 포함하는 파일의 tar 아카이브 (위에서 링크 된 패키지에서와 같이)를 만듭니다.

+0

메타 데이터 솔루션은 의미가 있습니다. 나는 R 데이터 파일에 관한 빈을 모르고 내부 메타 데이터가 있다고 생각했다. –

+0

@JD Long : 그것이 내가 상상할 수있는 유일한 방법이다. 위의 대답에서 내가 원한 것을 보여주기 위해 원시적 인 예를 만들었습니다. 그것은 훨씬 더 간단한 방법으로 쉽게 구현 될 수 있습니다. 따라서이 데모 기능은 실제 프로덕션에서는 사용할 수 없습니다. :) – daroczig

+3

R의 메타 데이터 솔루션은 이미 존재하며 지연로드라는 이름으로 불립니다 - http://stackoverflow.com/을 참조하십시오. questions/8700619/get-specific-object-from-rdata-file –

2

R v3.0.1에서 load() 함수에 새로운 인수가 있습니다. RData 파일을로드하면

load("mydata.RData", verbose=TRUE) 

이 표시되며로드 된 개체가 표시됩니다. 물론, 여전히 객체를로드해야한다는 의미입니다. 어쩌면

1

,

load("myDataFile.RData",ex<-new.env()) 
content=ls.str(ex) 
관련 문제