RDATA 파일에서 개체를 나열하고 전체 개체 집합이 아닌 선택한 개체 만로드하는 데 관심이 있습니다 (일부 개체가 크거나 환경에 이미있을 수있는 경우). attach()
이 잘 작동하지 않기 때문에 이름에 충돌이있을 때이를 수행하는 방법에 대해서는 분명하지 않습니다. 를로드하지 않고 R 데이터 파일의 내용을 검사의 경우 :새로운 환경에 연결하여 .rdata 파일의 내용을 검사 할 수 있습니까?
1, 제공하는 솔루션은이 질문은 비슷하지만이 경우 listing contents of an R data file without loading
에 물었다 것과 다른했다 :
attach(filename)
ls(pos = 2)
detach()
파일의 객체 및 글로벌 환경에서 그 사이에 이름 충돌이있는 경우
이 경고가 나타납니다 The following object(s) are masked _by_ '.GlobalEnv':
나는 새로운 환경을 만드는 시도,하지만 난 그것에 붙이는 것 같지 않습니다. 는 예를 들어,이 같은 오류가 발생합니다 :
lsfile <- function(filename){
tmpEnv <- new.env()
evalq(attach(filename), envir = tmpEnv)
tmpls <- ls(pos = 2)
detach()
return(tmpls)
}
lsfile(filename)
어쩌면 내가
evalq
(또는
eval
) 물건의 혼란을했습니다. 명명 충돌을 피할 수있는 다른 방법이 있습니까?
2 : 개체에 액세스하려는 경우 명명 충돌이없는 경우 .rdat 파일에서 작업하거나 새 개체로 복사 할 수 있습니다. 충돌이있는 경우 파일의 네임 스페이스에있는 객체에 어떻게 액세스합니까?
예를 들어 내 파일이 "sample.rdat"이고 객체가 surveyData이고 surveyData 객체가 이미 전역 환경에있는 경우 file:sample.rdat
네임 스페이스의 객체에 액세스하려면 어떻게해야합니까?
현재 모든 것을 임시 환경에로드 한 다음 필요한 것을 복사하여이 문제를 해결하지만 비효율적입니다.
요청이 r-devel에 올라와있는 것을 보았습니다. 전체 .Rdta 파일을로드하는 대신에 사용할 수있는 것 같습니다. –