如何在R中删除数据集中的前N行?

9

我已经看到了这个stackoverflow的问题,但是我想要从我的数据集中删除前N行。由于我是R的新手,所以无法想出解决方案。


将链接中的2替换为N,即可得出答案。 - Rich Scriven
2个回答

24
在这种情况下,我们需要相反的结果,因此可以使用 tail
N <- 5
tail(df, -N)
#    a
#6   6
#7   7
#8   8
#9   9
#10 10

如果N的值为负数或0,则可以将其包装在一个函数中并指定条件以返回完整数据集。

f1 <- function(dat, n) if(n <= 0) dat else tail(dat, -n)
f1(df, 0)
f1(df, 5)

数据

df <- data.frame( a = 1:10 )

不适用于N=0。 - user66081
我可能仍然想要删除N=0行。 - user66081

8

基于上面的示例中使用的 df:

N <- 5

df[-(1:N), , drop = FALSE]

df[-(1:N),] 对我来说是有效的,但是 , drop = FALSE 是什么意思呢? - Dannid
drop = FALSE 确保如果 df 是一个单列的数据框,返回的值仍然是一个数据框(而不会丢失维度并变成向量)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接