2016-07-14 2 views
3

저는 R 에 상당히 익숙하며 자신을 이해하기 위해 최선을 다할 것입니다. 여러 객체가있는 기존 rdata 파일이 있다고 가정합니다. 이제 데이터 프레임을 추가하고 싶습니다. 어떻게해야합니까? 해봤 다음데이터 프레임을 기존의 rdata 파일에 추가하십시오

write.data.loc <- 'users/Jim/Objects' 

rdataPath <- 'users/Jim/Objects.Rda' 

myFile<- read.csv("myFile.csv") 

loadObjects <- load(rdataPath) 

save(loadObjects,myFile,file=paste(write.data.loc,".Rda",sep="")) 

하지만이 작동하지 않는 것입니까?

+0

어떤 오류가 표시됩니까? – xxfelixxx

+0

파일의 내용에 액세스 할 때 loadObjects, myFile loadObjects의 내용이 아닌 – radhika

+0

'loadObjects - load (rdataPath) '를'load (rdataPath)'로 변경해보십시오. 나는 당신이'loadObjects'를 덮어 쓰고 있다고 생각합니다. – xxfelixxx

답변

1

실제 사용 사례가 확실하지 않지만 rda 파일에 새 개체를 "추가"해야하는 경우 하나의 방법이 있습니다. 이것은 loadrda 파일의 모든 객체를 새로운 environment으로 똑똑이하려고 시도합니다. (환경의 사용 및 관련성을 설명하는 많은 자습서 및 안내서가 있습니다. 해들리의 "Advanced R"은 좋은 직장입니다.)

이 첫 번째 단계는 모든 개체를 새로운 (빈) 환경으로로드합니다. 우리가 의 모든 객체를 ls을 사용하여 쉽게 얻을 수 있도록 다르게 비어있는 환경을 사용하는 것이 유용합니다.

e <- new.env(parent = emptyenv()) 
load("path/to/.rda", envir = e) 

추가 할 개체를 환경 변수에로드해야합니다. 달러 기호 액세스는 list과 동일하게 보이므로 (1) 두 가지를 혼동하기 쉽고 (2) $이 제공하는 명명 된 색인 생성을 쉽게 이해할 수 있습니다.

e$myFile <- read.csv("yourFile.csv") 

이 마지막 부분은 다시 절약 rda 파일을 간접적 인 방법이다. ls(envir = e)은 환경 내의 모든 오브젝트의 변수 이름을 리턴합니다. save이 개체 나 이름을 처리 할 수 ​​있기 때문에 좋습니다.

do.call("save", c(ls(envir = e), list(envir = e, file = "newsave.rda"))) 

는 이전의 모든 개체와 새로운 데이터를 포함하는 일 새 것으로 rda 파일을 작성 오버 그것의, 이것은 rda 파일에 data.frame를 추가하지 기술적으로 것을 알고 있습니다. 틀.

+0

radhika, [ask-and-run] 습관이있는 것 같습니다 (https://stackoverflow.com/users/5322608/radhika). StackOverflow의 에티켓에는 종결을위한 답변을 수락하는 것은 물론 당신을 도우려고 노력하는 사람들에게 "보상"하는 것도 포함됩니다. 답변이 충분하지 않은 경우 "왜"작동하지 않는지 설명하는 것이 좋습니다. 그렇지 않으면 그 질문에 대한 도움을 얻지 못할 수 있습니다. 제안 된 대답을 수락하거나, 왜 부족한 지에 대해 의견을 말하며, "아무것도 작동하지 않아 더 이상 필요하지 않다"는 질문에 의견을 추가하십시오. – r2evans

관련 문제