2016-12-08 93 views
0

其行尺寸是零我有像DF1,DF2,...,DF11其尺寸为20,3许多数据帧; 40.4 ,; 0,5; 0,2 ...;这些尺寸并不在我的计划从那里我计算我的数据保持不变frames.So我想筛选出谁拥有零点的尺寸一样暗淡(DF3)的数据帧给0,5 这是我曾尝试过滤出的数据帧中的R

while(!dim(df(i))[1]==0) 
{ 

    DF=paste("df",c(1:11)) 

} 

感谢

+0

你希望不是空dataframes的名字或你想要的dataframes本身作为一个列表? –

+0

@ joel.wilson,希望dataframes本身 – Deepesh

回答

2

保持数据集在list

Filter(function(x) nrow(x)>1, mget(paste0("df", 1:11))) 

还是其他选项后,我们可以使用Filtersapply创建一个逻辑向量,然后子集list

lst <- mget(paste0("df", 1:11)) 
i1 <- sapply(lst, nrow)>0 
lst[i1] 
+1

它的工作谢谢.............. – Deepesh

1

这只是为了解释您可能出错的地方。你应该更喜欢一个for代替while

如果你想只非空data.frames的名字:

total_num_dataframes = 4 
DF =character(0) 
for (i in 1:total_num_dataframes){ 
    if (dim(get(paste0("df",i)))[1] != 0) 
    DF = c(DF,paste0("df",i)) 

} 

如果你希望data.frames本身:

DF = vector('list', length = total_num_dataframes) 
j = 1 
for (i in 1:total_num_dataframes){ 
    if (dim(get(paste0("df",i)))[1] != 0) { 
    DF[[j]] = get(paste0("df",i)) 
    j = j+1 
    } 

}