Назначьте значение в одном столбце, если символ в другом столбце равен x в R - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь назначить конкретное c число / номер в столбце, если символ в другом столбце равен x. У меня есть 5 символов, которые повторяются вниз по столбцу, и в новом столбце мне нужно назначить номер каждому повторяющемуся символу. Обычно каждый из 5 символов имеет определенный c номер, который должен go в новом столбце. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 05 мая 2020

Вот два решения, которые, на мой взгляд, являются вашей задачей (немного сложно судить, поскольку вы не предоставляете никаких конкретных данных). Давайте предположим, что это (как) ваши данные:

 df <- data.frame(col1 = sample(LETTERS[1:5], 10, replace = T))

Решение 1 : base R

df$new <- ifelse(df$col1 == "A", 1,
                 ifelse(df$col1 == "B", 2,
                        ifelse(df$col1 == "C", 3,
                               ifelse(df$col1 == "D", 4, 5))))

Решение 2 : dplyr

library(dplyr)
df$new <- df %>% 
  mutate(col1 = case_when(col1 == "A" ~ 1,
                          col1 == "B" ~ 2,
                          col1 == "C" ~ 3,
                          col1 == "D" ~ 4,
                          TRUE        ~ 5))

Результаты идентичны:

df
   col1 new
1     E   5
2     C   3
3     D   4
4     C   3
5     A   1
6     E   5
7     B   2
8     A   1
9     B   2
10    E   5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...