I have a data frame with unique row names. I want to create a subset data frame with single row based on the the row names. When  I am using data[rownames(data)==name, ] I am not getting a data frame instead getting a value vector. The program is to filter data based on row names and create new data frames. 
            Asked
            
        
        
            Active
            
        
            Viewed 602 times
        
    1
            
            
        - 
                    It sounds like you are on the right track, please include a [minimal reproducible](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) example for more help – Nate Sep 18 '17 at 10:31
2 Answers
7
            
            
        We need drop = FALSE as by default, the [ have drop = TRUE.  So, if there is a single row, then it gets converted to lower dimension i.e. a vector.
data[rownames(data)==name, , drop = FALSE ]
 
    
    
        akrun
        
- 874,273
- 37
- 540
- 662
1
            
            
        You can use subset.
set.seed(4577)  # Make it reproducible
dat <- data.frame(A = sample(letters, 10), X = rnorm(10))
subset(dat, subset = rownames(dat) == 3)
#  A         X
#3 j 0.339270
 
    
    
        Rui Barradas
        
- 70,273
- 8
- 34
- 66
 
    