我想过滤掉我的数据集的一部分:
这是我的数据集:
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 49df <- 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))我希望排除所有为每个Quadrat Year提供 Ash 的
到目前为止我尝试过的:
我尝试从这里调整解决方案,Excluding specific rows使用(CommonName != "Ash")作为过滤器,但这只排除了灰本身,而不是那年的整个样方,任何帮助都是非常感谢的。
发布于 2022-05-21 14:51:57
假设我正确理解了您的需要,这应该会有所帮助:
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 16https://stackoverflow.com/questions/72330057
复制相似问题