如何根据列是否具有特定值仅保留特定行?

问题描述 投票:0回答:1

我有一个数据集,其中包含鸟类的目、物种和各种性状数据。我正在尝试使其仅保留某些订单的数据。通常,当我按物种进行子集化时,我会合并数据集,以便只有具有相同行名称(即物种名称)的数据集保留在新数据框中,但似乎在使用 read.csv() 时行名称不能重复,并且由于订单名称会重复,因此我不能将它们作为行名称。那么我如何将其子集化,以便新数据框仅包含有关选定订单的信息?这是包含订单和物种的列的样子:

                                        Order1                      Species
Acanthagenys_rufogularis         Passeriformes     Acanthagenys_rufogularis
Acanthiza_apicalis               Passeriformes           Acanthiza_apicalis
Acanthiza_chrysorrhoa            Passeriformes        Acanthiza_chrysorrhoa
Acanthiza_lineata                Passeriformes            Acanthiza_lineata
Acanthiza_nana                   Passeriformes               Acanthiza_nana
Acanthiza_pusilla                Passeriformes            Acanthiza_pusilla
Acanthiza_reguloides             Passeriformes         Acanthiza_reguloides
Acanthiza_uropygialis            Passeriformes        Acanthiza_uropygialis
Acanthorhynchus_tenuirostris     Passeriformes Acanthorhynchus_tenuirostris
Accipiter_cirrocephalus        Accipitriformes      Accipiter_cirrocephalus

虽然前 10 行只包含 2 个目,但数据集包含 26 个禽目的信息,我只对雀形目、鸬鹚形目、鹦鹉形目和鸫形目感兴趣

r subset
1个回答
0
投票

假设您使用

bird_df
读入数据框后称为
read.csv()
,您可以使用以下方法对数据进行子集化,使其仅包含
Order1
等于 Passeriformes、Charadriiformes、Psittaciformes 或 Struthioniformes 的行:

subset_bird_df <- bird_df[bird_df$Order1 %in% c("Passeriformes", "Charadriiformes", "Psittaciformes", "Struthioniformes"),]
© www.soinside.com 2019 - 2024. All rights reserved.