Attempt to set 'rownames' on an object with no dimensions
1
1
Entering edit mode
3.5 years ago
ks.sholohova ▴ 30

Hello everyone! My name is Kseniia and I am new here!

I did encounter some problems while analyzing american gut data. Here is the code for it:

library(devtools)
devtools::install_github("zdk123/SpiecEasi")   
library(SpiecEasi) 
SpiecEasi.matrix <- spiec.easi(amgut1.filt,  
                           method = 'glasso',  
                           lambda.min.ratio = 1e-2,  
                           nlambda = 20,    
                           icov.select.params=list(rep.num=50))

The next line suppose to add OTU names to rows and columns

rownames(SpiecEasi.matrix$refit) <- colnames(amgut1.filt)

Then this error appeared: Error in rownames<-(*tmp*, value = c("OTU_1", "OTU_2", "OTU_3", "OTU_4", : attempt to set 'rownames' on an object with no dimensions

I understood that it appears because $refit is a list. But I don't know how to fix it. If anyone had the same error, I would greatly appreciate your help with its solution.

Thanks in advance! Kseniia

R microbiome spieceasi • 5.6k views
ADD COMMENT
3
Entering edit mode
3.5 years ago

Try this:

rownames(SpiecEasi.matrix$refit$stars) <- colnames(amgut1.filt)
ADD COMMENT
1
Entering edit mode

Thank you very much, Andres! Now everything perfectly works.

I just want to make sure please that I understand the concept, if you don't mind. So, SpiecEasi.matrix$refit is a list. That's why I got this error. Then by using SpiecEasi.matrix$refit$stars I refer to numeric object that is dimensional already and, hence, it works.

Have a nice day!

ADD REPLY
0
Entering edit mode

If this resolved your issue accept as answer - tick.

ADD REPLY

Login before adding your answer.

Traffic: 2553 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6