Home > Mobile >  Eliminating row.names from a data.frame
Eliminating row.names from a data.frame

Time:07-21

I have a data frame named AE, typically I set the row names to NULL to allow an rbind. In this cases when I do that, the row.names are still "1","2", and do not allow a bind. I am not understanding what is different about this data.frame.

#load Data    
AE <- structure(list(mean = c(0.363510076570372, 0.636489923429628), 
        SE = c(0.00728114835455055, 0.00728114835455055), grp = c("D", 
        "DP"), level = c("fair or poor health", 
        "good or better health"), counts = structure(list(counts = c(25405L, 
        25405L)), row.names = c("counts", "counts1"), class = "data.frame")), row.names = c(NA, 
    -2L), class = "data.frame")
    
#remove rownames
    rownames( AE ) <- NULL

#this is the line i want to work
    rbind( AE, AE)

CodePudding user response:

The main reason is that one of the column is a data.frame.

> str(AE)
'data.frame':   2 obs. of  5 variables:
 $ mean  : num  0.364 0.636
 $ SE    : num  0.00728 0.00728
 $ grp   : chr  "D" "DP"
 $ level : chr  "fair or poor health" "good or better health"
 $ counts:'data.frame': 2 obs. of  1 variable: ###
  ..$ counts: int  25405 25405

We may need to convert it to a regular column

AE <- do.call(data.frame, AE)
out <- rbind(AE, AE)
row.names(out) <- NULL
> out
       mean          SE grp                 level counts
1 0.3635101 0.007281148   D   fair or poor health  25405
2 0.6364899 0.007281148  DP good or better health  25405
3 0.3635101 0.007281148   D   fair or poor health  25405
4 0.6364899 0.007281148  DP good or better health  25405

Or using tidyverse, unpack to convert to a regular column and then use bind_rows

library(tidyr)
library(dplyr)
unpack(AE, counts) %>% 
   bind_rows(., .)
# A tibble: 4 × 5
   mean      SE grp   level                 counts
  <dbl>   <dbl> <chr> <chr>                  <int>
1 0.364 0.00728 D     fair or poor health    25405
2 0.636 0.00728 DP    good or better health  25405
3 0.364 0.00728 D     fair or poor health    25405
4 0.636 0.00728 DP    good or better health  25405
  • Related