2013-02-05 7 views
2

bio.infer 패키지에는 수정할 필요가있는 /usr/lib/R/library/bio.infer/data/itis.ttable.rda 데이터 프레임이 포함되어 있습니다.R 패키지 데이터 수정

bio.infer 패키지를로드하고 data() 함수를 사용하여 데이터 프레임을 첨부 한 후 데이터 프레임을 write.table()을 사용하여 텍스트 파일에 작성했습니다.

사용 이맥스 나는 데이터 프레임에 다른 행이 다음 데이터 프레임을 생성 에() read.table 적용 추가했지만 내 PWD의 bio.infer 패키지가 아닌 R 라이브러리 데이터 하위 디렉토리 에 있습니다.

텍스트 파일 또는itis.ttable의 로컬 복사본을 /usr/lib/R/library/bio.infer/data/itis.ttable.rda에 복사/저장/쓰기하는 R 함수는 무엇입니까? 라이브러리의 데이터 프레임에이 행을 추가하는 방법을 보지 않고 R 문서 및 내 R 라이브러리의 라이브러리를 살펴 봤습니다.

+5

왜 새 복사본을 만드는 대신 패키지와 함께 제공되는 데이터를 변경 하시겠습니까? 한 가지는 패키지를 업데이트하면 변경 사항이 손실 될뿐입니다. –

답변

1

loadsave을 rda 파일과 함께 사용하십시오.

#Path to the data file 
fname <- system.file("data", "itis.ttable.rda", package = "bio.infer") 
stopifnot(file.exists(fname)) 

#Load data into new environment 
e <- new.env() 
load(fname, envir = e) 

#Manipulate it 
e$itis.ttable <- rev(e$itis.ttable) #or whatever 

#Write back to file 
save(itis.ttable, file = fname, envir = e) 

데이비드 로빈슨 (David Robinson)이 언급했듯이 패키지의 복사본을 덮어 쓰지 않아야합니다. 자신의 복사본을 만드는 것이 더 합리적입니다.

+0

고마워요, 리치. 패키지와 함께 제공된 데이터를 편집하는 데는 두 가지 이유가 있습니다. 1) 데이터 프레임에없는 분류를 추가하고 2) 다른 bio.infer 함수가 해당 데이터 프레임을 사용하고 내 프로젝트 서브 디렉토리에있는 데이터 프레임을 사용하지 않기 때문입니다. –