我有一个数据框列表,大小不等。我想删除那些行数很少的(比如说<3)。

到目前为止,这是我一直在使用的东西,因为它的价值:

d1 <- data.frame(y1 = c(1, 2, 3, 9), y2 = c(4, 5, 6, 7))
d2 <- data.frame(y1,r,list,dataframe"/>
	














首页 > 解决方案 > 如何删除 nrow 的数据框

我有一个数据框列表,大小不等。我想删除那些行数很少的(比如说<3)。

到目前为止,这是我一直在使用的东西,因为它的价值:

d1 <- data.frame(y1 = c(1, 2, 3, 9), y2 = c(4, 5, 6, 7))
d2 <- data.frame(y1

问题描述

我有一个数据框列表,大小不等。我想删除那些行数很少的(比如说<3)。

到目前为止,这是我一直在使用的东西,因为它的价值:

d1 <- data.frame(y1 = c(1, 2, 3, 9), y2 = c(4, 5, 6, 7))
d2 <- data.frame(y1 = c(3, 2, 1, 6), y2 = c(6, 5, 4, 4))
d3 <- data.frame(y1 = c(3, 2), y2 = c(6, 5))
d4 <- data.frame(y1 = c(3, 2), y2 = c(6, 5))
listdfs <- list(d1, d2, d3, d4)


listdfs2<-lapply(listdfs,function(x) if(nrow<10<-NULL)))

所以基本上应该保持d1和2。

谢谢。


我的python代码输出背后的逻辑是什么?

我从网站上获得了以下程序片段的参考,但通过它我无法理解输出:

data = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
def fun(m):
    v = m[0][0]

    for row in m:
        for element in row:
            if v < element: v = element

    return v
print(fun(data[0]))

我可以通过打印语句计算几个输出,例如

v = m[0][0]  --> output 1

1st iteration
for element in row: --> output 1, 2
if v > element: v = element  --> output 2.

但是第一个 for 循环让我感到困惑,函数外的 print 语句也是如此。

对不起,愚蠢的问题,但我需要清除我的逻辑。

先感谢您

标签: rlistdataframe

解决方案


这可以通过 来完成Filter,即

Filter(function(i) nrow(i) > 3, listdfs)

[[1]]
  y1 y2
1  1  4
2  2  5
3  3  6
4  9  7

[[2]]
  y1 y2
1  3  6
2  2  5
3  1  4
4  6  4

推荐阅读