【问题标题】:Remove empty zero length rows in list with R使用 R 删除列表中的空零长度行
【发布时间】:2014-05-21 10:56:16
【问题描述】:

我有数据框列表,有些是空的,如何删除这些?

$`S566X7221`
[1] V1  V2  V3  V4  V5  V6  V7  V8  V9  V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21    V22 V23 V24 V25 V26
<0 rows> (or 0-length row.names)

这些我都试过了,但都不起作用

x[lapply(x,length)>0] 
Filter(length, x)

【问题讨论】:

    标签: r


    【解决方案1】:

    你已经接近了。但你想要nrow,而不是length(实际上是data.frame 中的列数)。

    x <- list(data.frame(A=numeric(),B=numeric()), data.frame(A=1:3, B=4:6), data.frame(A=1,B=2))
    x[sapply(x, nrow)>0]
    

    之前:

    > x
    [[1]]
    [1] A B
    <0 rows> (or 0-length row.names)
    
    [[2]]
      A B
    1 1 4
    2 2 5
    3 3 6
    
    [[3]]
      A B
    1 1 2
    

    之后:

    > x[sapply(x, nrow)>0]
    [[1]]
      A B
    1 1 4
    2 2 5
    3 3 6
    
    [[2]]
      A B
    1 1 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-18
      • 2014-09-22
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      相关资源
      最近更新 更多