So I have a data frame (called SNPlist) which is of dimensions 1 by 500000 (rows by columns). I want SNP list to be the column names for my dataframe of data (called Data) which is of dimension 100 by 500000. I already tried colnames(Data) <- SNPlist but it does not seem to be working. Can anyone help with this issue?
            Asked
            
        
        
            Active
            
        
            Viewed 1.2k times
        
    4
            
            
        
        starball
        
- 20,030
 - 7
 - 43
 - 238
 
3 Answers
5
            If SNPlist is a data.frame, then you need to point to the first row of it:
colnames(Data) <- SNPlist[1, ]
If it was a vector, what you'd tried would have worked
        alexwhan
        
- 15,636
 - 5
 - 52
 - 66
 
3
            
            
        It's been a while since the question was asked, but I noticed nobody suggested what works for me: colnames(Data) <- colnames(SNPlist)
Amos
        Amos
        
- 43
 - 5
 
0
            
            
        I was having a lot of trouble with this because the usual method (provided above by alexwhan) wasn't getting it done. I eventually got around it by first ripping out a headers vector from the old data frame and using the names function to slap it on the new one. 
names(new_DF) <- as.character(apply(old_DF["wanted_header_row", ], 1, paste))
Perhaps it's a bit much, but it was the only thing that worked for me.
        J.M.S.
        
- 95
 - 7