我正在尝试使用for循环生成数据帧。 如何将这些数据框附加到列表中,然后检查是否有空框架? 我想从列表中删除空行的数据框。
感谢任何帮助
答案 0 :(得分:2)
您应该在不使用lapply
循环的情况下使用for
。优点是:
Somethinkg喜欢:
lapply(seq_len(nbr_df),function(x)
{
## code to create you data.frame dt
## dt = data.frame(...)
if(nrow(dt)>0) dt
})
我们假设您的变量具有某种模式,比如patt:
lapply(mget(ls(pattern=patt)),function(x)if(nrow(x)>0)x)
答案 1 :(得分:0)
要附加到列表,您可以
Your_list= list()
for(i in numbOfPosibleDF){
k <- data.frame()
if(nrow(k)!=0){
Your_list[paste0(df,i)] = k
}
}
答案 2 :(得分:0)
我只是将有效数据框添加到列表中,而不是之后删除它们。如果您想要或需要使用for循环(而不是lapply
函数),您可以使用以下内容:
# init list
list.of.df <- list()
# start your loop to
# create data frame etc.
# ....
df <- data.frame(1,2)
# add to list
if (!is.null(df) && nrow(df)>0) list.of.df[[length(list.of.df)+1]] <- df
# ... end of loop here.
答案 3 :(得分:0)
为了任何人通过其标题找到这个其他死胡同页面的好处,连接作为列表项的一致格式化data.frames的方法是使用plyr:
rbind.fill.matrix(lst)
答案 4 :(得分:0)
我想更好地了解情景:
这些帧可能有也可能没有相同数量的列/行。
使用for循环动态生成数据帧。
帧具有所有数据类型:数字,因子,字符。