假设我正在从一个名为“data.frame”的有命名的列表中根据名为“long”的子集变量进行子集化。
子集化后,列表中的一些“data.frame”可能为空,因为它们没有匹配的子集化。
我想知道如何在最终输出中删除所有这些空的“data.frame”。
下面是一个简单的示例和我的不成功的解决方案:
子集化后,列表中的一些“data.frame”可能为空,因为它们没有匹配的子集化。
我想知道如何在最终输出中删除所有这些空的“data.frame”。
下面是一个简单的示例和我的不成功的解决方案:
b <- list(Study1 = data.frame(d = 6:8, long = c(F, F,F)), Study2 = data.frame(d = 9:11, long = c(T, T, F)) )
( h <- lapply(b, subset, subset = long) ) ## subset with respect to "long"
## OUTPUT:
$Study1
[1] d long
<0 rows> (or 0-length row.names) ## This data.frame is empty!! must be deleted ##!
$Study2
d long
1 9 TRUE
2 10 TRUE
## I tried the following with no success: ##
for(i in 1:2) if(nrow(h[[i]]) == 0) h[[i]] <- NULL else h[[i]]