我真的不知道如何翻译这个问题所以我只会解释一下。
我有这个数据集:
> 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中的值以任何其他随机方式分布,这将无效。
但这不幸的是没有用。有人可以帮忙吗?
答案 0 :(得分:1)
您正在将数据框索引错误。在idexing时,您应该使用[row, column]
。
因此,在您的示例中,您应该使用f1[f1$species==7,]
。
说明:
f1$species==7
会返回TRUE
和FALSE
值的向量。使用该向量,您将索引数据帧行(仅TRUE值)。
在,
之后您没有指定任何列,这将(默认情况下)获取数据框中的所有可用列。
答案 1 :(得分:0)
试试这个:
library(dplyr)
df <- f1 %>% filter(species == 7)
或者
df <- subset(f1, species == 7)