使用R删除列表中的空零长度行

时间:2014-05-21 10:56:17

标签: r

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

$`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)

1 个答案:

答案 0 :(得分:15)

你关闭了。但是你想要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