用一列过滤R数据帧 - 保持数据帧格式

时间:2015-05-22 08:00:32

标签: r dataframe

我正在寻找一种显示单列数据帧子集的简单方法 让我们假设,我有一个数据框:

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

现在,我只需要前10行。如果我按索引对其进行子集化,我将获得结果向量而不是数据帧:

> df[1:10,]
 [1]  1  2  3  4  5  6  7  8  9 10

我尝试使用&#39;子集&#39;但是不使用&#39;子集&#39;参数会导致错误(仅适用于单列数据帧?):

subset(df[1:10,])
Error in subset.default(df[1:10, ]) : 
  argument "subset" is missing, with no default

应该有一个非常简单的解决方案来实现按行索引过滤的子集(仍然是数据帧),不是吗? 我希望找到一个基本R命令的解决方案(它不应该依赖于任何特殊的库)

1 个答案:

答案 0 :(得分:4)

您可以使用drop=FALSE,以防止丢弃数组的尺寸。

df[1:10, , drop=FALSE]
    a
1   1
2   2
3   3
4   4
5   5
...

对于subset,您需要添加条件。