2013-03-09 7 views
8

의미 론적 손실을 제한하면서 스토리지의 R 디스크에 간단한 데이터 프레임을 유지하는 데 가장 적합한 형식은 무엇입니까?저장 용으로 R의 디스크에 데이터 프레임을 저장하는 가장 좋은 형식은 무엇입니까?

데이터 세트를 보관 중이므로 문의합니다. 이상적으로, 내 데이터 형식은 다음과 특성 것 :

  1. 안정성 - 저장 형식은 R의 향후 버전과 호환됩니다
  2. 의미 호환성 - R의 원시적 데이터의 의미를 이해 저장 형식 유형. 예를 들어, 레이블을 사용하여 정렬 된 요소를 합리적으로 저장할 수 있습니다.
  3. 개방형 표준 - 이상적으로, 형식이 너무 다른 통계 패키지 (현재 또는 미래)는

내 첫번째 생각은 매우 안정 CSV를 사용하는 것이 었습니다 이해 할 수있을 것입니다 개방형 표준이 될 것입니다, 필요한 의미 론적 풍부함이 부족합니다. 반면 R의 내장 RData 형식은 R의 의미를 완전히 포착하지만 릴리스간에 변경 될 가능성이 있습니다 (잘못된 경우 올바른 수정).

세 가지 필수 요소 사이의 균형을 찾는 다른 형식이 있습니까?

+0

R이 아닌 다른 프로그램에서 데이터를 열거 나 조작합니까? 그리고'? save'는'모든 최신 버전의 R은 압축 된 저장 파일을 읽을 수 있습니다. '라고 언급하고 있습니다. 따라서 데이터 형식은 릴리즈간에 바뀔 수 있습니다. – agstudy

+1

아마도 [XML] (http://stackoverflow.com/q/6256064/602276) 또는 [JSON] (http://stackoverflow.com/q/3600431/602276) – Andrie

+1

[YAML] (http : /en.wikipedia.org/wiki/YAML) 좋은 대안은'yaml' 패키지를보세요. 'R'의 기본 데이터 타입 (* 이름 목록, 벡터, ... 등)을 처리 할 수 ​​있으며 인간이 읽을 수 있습니다 (XML보다 더 나은 방법입니다). – QkuCeHBH

답변

4

dput으로 텍스트 파일에 덤프하십시오. 그렇게하면 R 개체의 모든 구조를 얻을 수 있고 텍스트 기반 폼에서 R이 기존 개체를 멈추게되면 상당히 쉽게 파싱 할 수 있습니다.

'공개 표준'테스트 (3)를 통과하지 못했을 수 있습니다.

R은 .RData 형식과의 이전 버전과의 호환성이 뛰어나므로 최신 R로 작성된 파일이 이전 버전과 동일하지 않은 경우에도 최신 R은 이전 파일을 읽습니다. 그러나 R이 존재하지 않는다면, 바이너리 형식의 리버스 엔지니어링은 dput의 결과보다 훨씬 더 어렵습니다.