从向量中分配 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
在 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