Как назначить тысячи рядов видов в функциональную группу в R studio? - PullRequest
0 голосов
/ 27 марта 2020

Я хотел бы отнести каждый из моих видов в моем наборе данных к функциональной группе. Я попробовал следующий код, который дает мне значение только для одного из моих видов ...

Spp = dplyr::select(DOG, Sub.Plot., Species, CV)

Spp$Func <- ifelse(grepl("Andropogon ternarius", Spp$Species), "Grass", "")
Spp$Func <- ifelse(grepl("Conyza canadensis", Spp$Species), "Forb", "")

     Sub.Plot.                       Species CV   Func
1      185-188           Triplasis americana  3     
2      185-188    Eupatorium compositifolium  8     
3      185-188              Croton michauxii  5     
4      185-188             Conyza canadensis  2   Forb

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 27 марта 2020

Просто чтобы привести предложения из комментариев в ответ.

Решение левого соединения

library(dplyr)

refTbl <- data.frame(
  Species = c("Andropogon ternarius", "Conyza canadensis"),
  Func = c("Grass", "Forb")
)

Spp <- select(DOG, Sub.Plot., Species, CV) %>% 
  left_join(refTbl)

И решение кейса

library(dplyr)

Spp <- select(DOG, Sub.Plot., Species, CV) %>% 
  mutate(Func = case_when(
    grepl("Andropogon ternarius", Species) ~ "Grass",
    grepl("Conyza canadensis", Species) ~ "Forb",
    TRUE ~ ""
  ))

или пошаговое без труб

library(dplyr)

Spp <- select(DOG, Sub.Plot., Species, CV)

Sapp$Func <- case_when(
  grepl("Andropogon ternarius", refTbl$Species) ~ "Grass",
  grepl("Conyza canadensis", refTbl$Species) ~ "Forb,
  TRUE ~ ""
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...