rdata.tablelm

How to remove a data table with 0 nrows from a list in R?


I have a list of list with several data tables. I wanted to use lm() function between two variables in all data tables, but I have some empty data tables.

So, I have decided to remove those data tables that dont have anything. How I can remove the data tables with 0 nrows from my list?

Many thanks


Solution

  • use the function

    Filter(nrow, df_list)
    

    For example:

    df_list <- list(head(iris), data.frame(), tail(iris), data.frame(), head(trees))
    Filter(nrow, df_list)
    
    [[1]]
      Sepal.Length Sepal.Width Petal.Length Petal.Width Species
    1          5.1         3.5          1.4         0.2  setosa
    2          4.9         3.0          1.4         0.2  setosa
    3          4.7         3.2          1.3         0.2  setosa
    4          4.6         3.1          1.5         0.2  setosa
    5          5.0         3.6          1.4         0.2  setosa
    6          5.4         3.9          1.7         0.4  setosa
    
    [[2]]
        Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
    145          6.7         3.3          5.7         2.5 virginica
    146          6.7         3.0          5.2         2.3 virginica
    147          6.3         2.5          5.0         1.9 virginica
    148          6.5         3.0          5.2         2.0 virginica
    149          6.2         3.4          5.4         2.3 virginica
    150          5.9         3.0          5.1         1.8 virginica
    
    [[3]]
      Girth Height Volume
    1   8.3     70   10.3
    2   8.6     65   10.3
    3   8.8     63   10.2
    4  10.5     72   16.4
    5  10.7     81   18.8
    6  10.8     83   19.7