首页 > 解决方案 > 根据行号过滤存储在列表中的数据帧

问题描述

我有以下问题。我在列表环境中存储多个数据框。我写了一个循环,它应该遍历列表中的数据帧并删除太短的数据帧。但不知何故,从列表中删除数据框并不成功。

datalist # a list containing data frames

for (i in 1:length(datalist)) {
  datset <- datalist[i]
  if (nrow(datset) < 25) {
    sub_name <- names(datset)
    datalist <- datalist[-sub_name]
  }
}

我感谢每一个帮助。

标签: rlistloops

解决方案


您可以执行以下操作:

dataSetRowCounts <- sapply(datalist,NROW)
datalist[dataSetRowCounts < 25] <- NULL
datalist

data.frame首先,获取列表中每个的行数。其次,删除少于 25 行的列表元素,方法是将它们设置为NULL


推荐阅读