简体   繁体   English

不包括特定行 R

[英]excluding Specific rows R

I would like to filter out parts of my data set:我想过滤掉部分数据集:

This is my datatset:这是我的数据集:

   Year Observer Quadrat            ScientificName             CommonName PercentageCover X_local_m Y_local_m GroundFloraRichness
1  2020   Expert      90        Glechoma hederacea             Ground ivy             3.0       100       600                  24
2  2020   Expert      90      Mercurialis perennis          Dog's mercury            10.0       100       600                  24
3  2020   Expert      90             Poa trivialis     Rough meadow grass            45.0       100       600                  24
4  2020   Expert      90       Pteridium aquilinum                Bracken             1.0       100       600                  24
5  2020   Expert      90          Rubus fruticosus                Bramble             2.0       100       600                  24
6  2020   Expert      90             Urtica dioica        Stinging nettle             5.0       100       600                  24
7  2020   Expert      91   Brachypodium sylvaticum            False brome             1.0       120       600                  16
8  2020   Expert      91            Galium aparine  Cleavers / Goosegrass            90.0       120       600                  16
9  2020   Expert      91        Glechoma hederacea             Ground ivy             1.0       120       600                  16
10 2020   Expert      91 Hyacinthoides non-scripta               Bluebell             1.0       120       600                  16
11 2020   Expert      91             Poa trivialis     Rough meadow grass            60.0       120       600                  16
12 2020   Expert      91          Rubus fruticosus                Bramble             2.0       120       600                  16
13 2020   Expert      91             Urtica dioica        Stinging nettle            80.0       120       600                  16
14 2021   Expert       1       Acer pseudoplatanus               Sycamore             2.0         0         0                  22
15 2021   Expert       1         Circaea lutetiana Enchanter's nightshade             0.5         0         0                  22
16 2021   Expert       1     Deschampsia cespitosa      Tufted hair grass             3.0         0         0                  22
17 2021   Expert       1        Fraxinus excelsior                    Ash             1.0         0         0                  22
18 2021   Expert       1              Geum urbanum             Wood avens             0.5         0         0                  22
19 2021   Expert       1 Hyacinthoides non-scripta               Bluebell            20.0         0         0                  22
20 2021   Expert       1      Mercurialis perennis          Dog's mercury            30.0         0         0                  22
21 2021   Expert       1       Pteridium aquilinum                Bracken             1.0         0         0                  22
22 2021   Expert       1          Rubus fruticosus                Bramble            15.0         0         0                  22
23 2021   Expert       2       Acer pseudoplatanus               Sycamore             2.0        20         0                  49
24 2021   Expert       2   Brachypodium sylvaticum            False brome             1.0        20         0                  49
25 2021   Expert       2         Circaea lutetiana Enchanter's nightshade             0.5        20         0                  49
26 2021   Expert       2        Fraxinus excelsior                    Ash            15.0        20         0                  49
27 2021   Expert       2              Geum urbanum             Wood avens             1.0        20         0                  49
df <- structure(list(Year = c(2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 
2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2021L, 2021L, 
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 
2021L, 2021L, 2021L), Observer = c("Expert", "Expert", "Expert", 
"Expert", "Expert", "Expert", "Expert", "Expert", "Expert", "Expert", 
"Expert", "Expert", "Expert", "Expert", "Expert", "Expert", "Expert", 
"Expert", "Expert", "Expert", "Expert", "Expert", "Expert", "Expert", 
"Expert", "Expert", "Expert"), Quadrat = c(90L, 90L, 90L, 90L, 
90L, 90L, 91L, 91L, 91L, 91L, 91L, 91L, 91L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), ScientificName = c("Glechoma hederacea", 
"Mercurialis perennis", "Poa trivialis", "Pteridium aquilinum", 
"Rubus fruticosus", "Urtica dioica", "Brachypodium sylvaticum", 
"Galium aparine", "Glechoma hederacea", "Hyacinthoides non-scripta", 
"Poa trivialis", "Rubus fruticosus", "Urtica dioica", "Acer pseudoplatanus", 
"Circaea lutetiana", "Deschampsia cespitosa", "Fraxinus excelsior", 
"Geum urbanum", "Hyacinthoides non-scripta", "Mercurialis perennis", 
"Pteridium aquilinum", "Rubus fruticosus", "Acer pseudoplatanus", 
"Brachypodium sylvaticum", "Circaea lutetiana", "Fraxinus excelsior", 
"Geum urbanum"), CommonName = c("Ground ivy", "Dog's mercury", 
"Rough meadow grass", "Bracken", "Bramble", "Stinging nettle", 
"False brome", "Cleavers / Goosegrass", "Ground ivy", "Bluebell", 
"Rough meadow grass", "Bramble", "Stinging nettle", "Sycamore", 
"Enchanter's nightshade", "Tufted hair grass", "Ash", "Wood avens", 
"Bluebell", "Dog's mercury", "Bracken", "Bramble", "Sycamore", 
"False brome", "Enchanter's nightshade", "Ash", "Wood avens"), 
    PercentageCover = c(3, 10, 45, 1, 2, 5, 1, 90, 1, 1, 60, 
    2, 80, 2, 0.5, 3, 1, 0.5, 20, 30, 1, 15, 2, 1, 0.5, 15, 1
    ), X_local_m = c(100L, 100L, 100L, 100L, 100L, 100L, 120L, 
    120L, 120L, 120L, 120L, 120L, 120L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 20L, 20L, 20L, 20L, 20L), Y_local_m = c(600L, 
    600L, 600L, 600L, 600L, 600L, 600L, 600L, 600L, 600L, 600L, 
    600L, 600L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L), GroundFloraRichness = c(24L, 24L, 24L, 24L, 24L, 
    24L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 22L, 22L, 22L, 22L, 
    22L, 22L, 22L, 22L, 22L, 49L, 49L, 49L, 49L, 49L)), class = "data.frame", row.names = c(NA, 
-27L))

I am looking to exclude all Quadrat that have Ash present for each Year我希望排除所有Year都有Ash存在的Quadrat

What I have tried so far:到目前为止我已经尝试过:

I tried adapting the solution from here Excluding specific rows using (CommonName != "Ash") as the filter but this only excluded ash itself not the entire quadrat for that year, any help is much appreciated.我尝试从此处调整解决方案Excluding specific rows using (CommonName != "Ash")作为过滤器,但这仅排除了 ash 本身,而不是当年的整个样方,非常感谢任何帮助。

Assuming that I correctly understand what you need, this should help:假设我正确理解您的需求,这应该会有所帮助:

library(dplyr)
library(tidyr)

df %>% 
  group_by(Year, Quadrat) %>% 
  mutate(helper = ifelse(CommonName %in% "Ash", TRUE, NA_character_)) %>%
  fill(helper, .direction = "updown") %>% 
  filter(is.na(helper)) %>% 
  select(-helper)
  Year Observer Quadrat ScientificName            CommonName            PercentageCover X_local_m Y_local_m GroundFloraRichness
   <int> <chr>      <int> <chr>                     <chr>                           <dbl>     <int>     <int>               <int>
 1  2020 Expert        90 Glechoma hederacea        Ground ivy                          3       100       600                  24
 2  2020 Expert        90 Mercurialis perennis      Dog's mercury                      10       100       600                  24
 3  2020 Expert        90 Poa trivialis             Rough meadow grass                 45       100       600                  24
 4  2020 Expert        90 Pteridium aquilinum       Bracken                             1       100       600                  24
 5  2020 Expert        90 Rubus fruticosus          Bramble                             2       100       600                  24
 6  2020 Expert        90 Urtica dioica             Stinging nettle                     5       100       600                  24
 7  2020 Expert        91 Brachypodium sylvaticum   False brome                         1       120       600                  16
 8  2020 Expert        91 Galium aparine            Cleavers / Goosegrass              90       120       600                  16
 9  2020 Expert        91 Glechoma hederacea        Ground ivy                          1       120       600                  16
10  2020 Expert        91 Hyacinthoides non-scripta Bluebell                            1       120       600                  16
11  2020 Expert        91 Poa trivialis             Rough meadow grass                 60       120       600                  16
12  2020 Expert        91 Rubus fruticosus          Bramble                             2       120       600                  16
13  2020 Expert        91 Urtica dioica             Stinging nettle                    80       120       600                  16

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM