Назначить значения в таблице из вектора - PullRequest
0 голосов
/ 21 января 2019

В R есть таблица, содержащая набор видов насекомых и пустой столбец «Специфика среды обитания». Кроме того, вектор указывает тех специалистов по местам обитания, которые рассматриваются как виды: виды 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")

Я просто хочу заполнить второй столбец ("специфика среды обитания") "s" для специалиста и "g" для универсалиста. Таблица должна выглядеть следующим образом:

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

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

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Пример с 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
0 голосов
/ 21 января 2019

Вот простой способ в базе 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...