data.tree
패키지의 설명서를 살펴 보았습니다. 그러나 내가 만든 data.tree
구조를 저장하는 방법을 찾지 못했습니다. 다른 구조 (예 : data.frame)로 변환하지 않고 data.tree 구조를 작성한 다음 저장하는 방법이 있습니까?R에 data.tree를 저장하는 방법?
답변
당신이 말하는 어떤 유형의 객체인지 전혀 알 수 없기 때문에 귀하의 질문이 다소 모호합니다. 그러나 이것은 나를 위해 작동하는 것 같습니다.
data("acme")
a = acme
class(a)
[1] "Node" "R6"
x = tempdir()
setwd(tempdir())
save(a, file = 'test.Rdata')
rm(a)
load('test.Rdata')
a
오 오케이, thnx, 특별한 방법이 있다고 생각했습니다. –
이렇게 저장하면 문제가 없습니다. 그러나 각 노드는 환경이므로 저장된 객체는 매우 커지는 경향이 있습니다. 이유에 대한 설명은 여기를 참조하십시오. http://stackoverflow.com/questions/13912867/empty-r-environment-becomes-large-file-when-saved. 너무 귀찮 으면 저장하기 전에 목록 (예 :'as.list') 또는 data.frame으로 변환 한 다음로드 한 후 (as.Node를 사용하여) 다시 변환 할 수 있습니다. –
@ChristophGlur는 좋은 지적입니다! 26000 + 노드의 내 data.tree 객체는 방대한 크기 때문에 RData 파일로 저장할 수 없습니다. 그냥 개체를 저장하기 위해 앞뒤로 변환하는 데 매우 느린 것 같습니다! –
data(acme)
print(acme)
acme$fieldsAll
acme$count
acme$totalCount
acme$isRoot
acme$height
print(acme, "p", "cost")
outsource <- acme$IT$Outsource
class(outsource)
print(outsource)
outsource$fields
outsource$isLeaf
outsource$level
outsource$path
outsource$p
outsource$parent$name
outsource$root$name
outsource$expCost <- outsource$p * outsource$cost
print(acme, "expCost")
acme$Get("p")
acme$Do(function(x) x$expCost <- x$p * x$cost)
acme$Get("expCost", filterFun = isLeaf)
ToDataFrameTable(acme, "name", "p", "cost", "level", "pathString")
ToDataFrameTree(acme, "name", "p", "cost", "level")
ToDataFrameNetwork(acme, "p", "cost")
tree <- ToDataFrameTree(acme, "name", "p", "cost", "level")
saveRDS(tree, "tree.RDS")
it_works <- readRDS("tree.RDS")
it_works
levelName name p cost level 1 Acme Inc. Acme Inc. NA NA 1 2 ¦--Accounting Accounting NA NA 2 3 ¦ ¦--New Software New Software 0.50 1000000 3 4 ¦ °--New Accounting Standards New Accounting Standards 0.75 500000 3 5 ¦--Research Research NA NA 2 6 ¦ ¦--New Product Line New Product Line 0.25 2000000 3 7 ¦ °--New Labs New Labs 0.90 750000 3 8 °--IT IT NA NA 2 9 ¦--Outsource Outsource 0.20 400000 3 10 ¦--Go agile Go agile 0.05 250000 3 11 °--Switch to R Switch to R 1.00 50000 3 >
오케이, 설명서에서 "저장"또는 "쓰기"를 검색해도 아무 것도 찾을 수 없지만 지금은 나에게 의미가 있습니다. –
@PhilipC. 물론, np. 이제 다행입니다. –
이 관련 질문에 대한 답변입니다 : 어떻게 다른 객체로 data.tree을 저장합니까?
여러 가지 방법으로 원본 data.tree를 변경하기 때문에 이것은 매우 중요합니다.
# What one would expect
myDataTree_clone <- myDataTree
"복제본"을 변경하면 실제로 myDataTree 개체도 변경됩니다.
# What one should do instead
myDataTree_clone <- Clone(myDataTree)
이제 원래 myDataTree 객체를 변경하지 않고 복제 작업 할 수 있습니다.
- 1. R에 GGally를 통해 개체를 저장하는 방법
- 2. R에 data.frame을 저장하는 방법은 무엇입니까?
- 3. R에
- 4. 그래픽을 시각화하는 대신 R에 저장하는 방법은 무엇입니까?
- 5. R에 여러 줄을 .jpg 파일로 저장하는 방법은?
- 6. 선택한 변수가있는 데이터를 R에 저장하는 방법은 무엇입니까?
- 7. R에 연관 규칙 규칙을 저장하는 방법은 무엇입니까?
- 8. R에 계층화 된 PDF를 저장하는 방법 (Sweave를 통해)
- 9. R에 3 차원 배열을 저장하는 가장 좋은 방법
- 10. R에
- 11. R에 알파를 설정하는 방법?
- 12. r에 날짜를 변환하는 방법?
- 13. r에 메시지를 표시하는 방법?
- 14. r에 조건문을 사용하는 방법
- 15. R에 좌표축을 설정하는 방법?
- 16. 방법 R에 heatmap.2
- 17. R에
- 18. R에 xlabel로
- 19. R에 $$ 사이에 숫자를 넣는 방법?
- 20. gmap 타일을 R에 그려내는 방법
- 21. R에 초라한 다이어그램을 그리는 방법?
- 22. R에 가계도를 그리는 방법 R
- 23. r에 디자인 행렬을 만드는 방법
- 24. R에 막대 그래프를 그리는 방법?
- 25. R에 빈 행렬을 만드는 방법?
- 26. R에 qplot에 SD를 추가하는 방법
- 27. r에 객체 'corhelp'를 찾는 방법
- 28. R 코러스를 디스크에 저장하는 방법
- 29. r에 결투 dendrograms (r에 dendrograms를 연속적으로 배치)
- 30. Luasocket TCP는 \ r에 \ n을 \ r에 \ n을
@ Hack-R 그래서 CSV로 저장 하시겠습니까? –
괜찮아요. 두 답을 모두 고맙기 때문에 공평하게 대답해야합니다. 답을 고르려면 주사위를 굴리고 승자는 @Vandenman입니다. –
그 점에 대해 걱정할 필요는 없지만, Hadley Wickham과 같은 R 전문가는 .RData보다는 .RDS 파일로 저장하는 것이 계산 상으로 빠르고 안정적이며 더 효율적이라고 말합니다. –