为值排序数据框

时间:2017-03-02 11:44:16

标签: r dataframe indices

我真的不知道如何翻译这个问题所以我只会解释一下。

我有这个数据集:

    > f1
    species weight length3  sex
1         1  242.0    30.0 <NA>
2         1  290.0    31.2 <NA>
3         1  340.0    31.1 <NA>
4         1  363.0    33.5 <NA>
5         1  430.0    34.0 <NA>
6         1  450.0    34.7 <NA>
7         1  500.0    34.5 <NA>

(共158行)。物种从1到7.现在我只想要一个物种为7的子集。我试过了

f1["species" == 7]

以下也可以使用

f1[104:159,]

但这只能起作用,因为这个数据集排序很好,如果例如1-7中的值以任何其他随机方式分布,这将无效。

但这不幸的是没有用。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您正在将数据框索引错误。在idexing时,您应该使用[row, column]

因此,在您的示例中,您应该使用f1[f1$species==7,]

说明:

f1$species==7会返回TRUEFALSE值的向量。使用该向量,您将索引数据帧行(仅TRUE值)。

,之后您没有指定任何列,这将(默认情况下)获取数据框中的所有可用列。

答案 1 :(得分:0)

试试这个:

library(dplyr)
df <- f1 %>% filter(species == 7)

或者

df <- subset(f1, species == 7)