llrs
llrs

Reputation: 3397

R: unable to save an element of a object

I am attempting to save an object, but it fails:

> save("MEs", "moduleColors", "net$dendrograms", file = "TNF_AH-network-auto.RData")
Error in save("MEs", "moduleColors", "net$dendrograms", file = "TNF_AH-network-auto.RData") : 
  object ‘net$dendrograms’ not found
> save(list=c("MEs", "moduleColors", "net$dendrograms"), file = "TNF_AH-network-auto.RData")
Error in save(list = c("MEs", "moduleColors", "net$dendrograms"), file = "TNF_AH-network-auto.RData") : 
  object ‘net$dendrograms’ not found
> save(list=c(MEs, moduleColors, net$dendrograms), file = "TNF_AH-network-auto.RData")
Error in FUN(X[[i]], ...) : invalid first argument
> save(MEs, moduleColors, as.vector(net$dendrograms), file = "TNF_AH-network-auto.RData") 
Error in save(MEs, moduleColors, as.vector(net$dendrograms), file = "TNF_AH-network-auto.RData") : 
  object ‘as.vector(net$dendrograms)’ not found
> save(MEs, moduleColors, list(net$dendrograms), file = "TNF_AH-network-auto.RData")
Error in save(MEs, moduleColors, list(net$dendrograms), file = "TNF_AH-network-auto.RData") : 
  object ‘list(net$dendrograms)’ not found
> head(net$dendrograms)
[[1]]

Call:
fastcluster::hclust(d = as.dist(dissTom), method = "average")
...
> ls(net)
 [1] "blockGenes"     "blocks"         "colors"         "dendrograms"   
 [5] "goodGenes"      "goodSamples"    "MEs"            "MEsOK"         
 [9] "TOMFiles"       "unmergedColors"

I can access it and I can save it with saveRDS:

> saveRDS(net$dendrograms, "dendro")
> 

Or I can save it with:

> tmp <- list(net$dendrograms)
> save(MEs, moduleColors, tmp, file = "TNF_AH-network-auto.RData")
> 

Why I can't save the object as expected with save(MEs, moduleColors, net$dendrograms, file = "TNF_AH-network-auto.RData") ?

The sessionInfo:

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.2 LTS

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=es_ES.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=es_ES.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=es_ES.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=es_ES.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] WGCNA_1.51            RSQLite_1.0.0         DBI_0.4-1            
[4] fastcluster_1.1.20    dynamicTreeCut_1.63-1

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.5           RColorBrewer_1.1-2    GenomeInfoDb_1.4.3   
 [4] plyr_1.8.4            iterators_1.0.8       tools_3.2.3          
 [7] rpart_4.1-10          preprocessCore_1.30.0 gtable_0.2.0         
[10] lattice_0.20-33       Matrix_1.2-6          foreach_1.4.3        
[13] parallel_3.2.3        gridExtra_2.2.1       cluster_2.0.4        
[16] S4Vectors_0.6.6       IRanges_2.2.9         stats4_3.2.3         
[19] grid_3.2.3            nnet_7.3-12           impute_1.42.0        
[22] Biobase_2.28.0        data.table_1.9.6      AnnotationDbi_1.30.1 
[25] survival_2.39-4       foreign_0.8-66        latticeExtra_0.6-28  
[28] Formula_1.2-1         GO.db_3.1.2           ggplot2_2.1.0        
[31] Hmisc_3.17-4          scales_0.4.0          codetools_0.2-14     
[34] matrixStats_0.50.2    splines_3.2.3         BiocGenerics_0.14.0  
[37] colorspace_1.2-6      acepack_1.3-3.3       doParallel_1.0.10    
[40] munsell_0.4.3         chron_2.3-47  

Upvotes: 3

Views: 2864

Answers (1)

StatMan
StatMan

Reputation: 636

I've had this problem myself too. I don't know why, but the save command from base is only capable of saving 'whole' objects. Saving only a column of a data frame is not possible (to the best of my knowledge). My workaround would be:

netDendongrams <- net$dendogrames
save("MEs", "moduleColors", "netDendongrams ", file = "TNF_AH-network-auto.RData")

Upvotes: 4

Related Questions