从向量中分配 table 中的值

Assign values in table from vector

在 R 中有一个 table 包含一组昆虫种类和一个空列 "habitat specifity"。此外,向量指定那些被认为是栖息地专家的物种:物种 B 和 C 是栖息地专家,物种 A、D 和 E 是栖息地通才。

example.species <- data.frame (species = c("A","B","C","D","E"), habitat.specifity=NA)
example.species
  species habitat.specifity
1       A                NA
2       B                NA
3       C                NA
4       D                NA
5       E                NA
example.specialists <- c("B","C")

我只想在第二列 ("habitat specifity") 中为专家填写 "s",为通才填写 "g"。 table 应该如下所示:

  species  habitat.specifity
1       A                  g
2       B                  s
3       C                  s
4       D                  g
5       E                  g

我认为这一定是一项很容易完成的任务,但我不知道如何完成。感谢您的帮助!

下面是 base R 中的一个简单方法:

example.species <- data.frame (species = c("A","B","C","D","E"), habitat.specifity=NA)
example.species$habitat.specifity <- "g" # default value
example.species$habitat.specifity[example.species$species %in% c("B","C")] <- "s"
#   species habitat.specifity
# 1       A                 g
# 2       B                 s
# 3       C                 s
# 4       D                 g
# 5       E                 g

示例dplyr

library(dplyr)

# Your data
example.species <- data.frame(species = c("A","B","C","D","E"),habitat.specifity=NA)

# Simple if_else with dplyr and pipes
example.species %>%
  mutate(habitat.specifity = if_else(species %in% c("B","C"), "s", "g"))

# Result 
  species habitat.specifity
1       A                 g
2       B                 s
3       C                 s
4       D                 g
5       E                 g