Как создать новый столбец на основе частичной строки другого столбца - PullRequest
2 голосов
/ 11 июля 2019

У меня есть фрейм данных с вектором тысяч кодов проектов, каждый из которых представляет свой тип исследования. Вот пример:

Data <- data.frame(Assignment = c("C-209", "B-543", "G-01", "LOG"))

Первая буква кода присвоения обозначает тип исследования. C = картография, B = биология, G = геология и лог = логистика.

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

Я пробовал что-то похожее на эту тему, но я знаю, что что-то упустил:

R - Создание нового столбца на основе частичной строки

Data <- data.frame(Assignment = c("C-209", "B-543", "G-01", "LOG"))

Types <- data.frame(Type = c("Cartography", "Biology", "Geology","Logistic"), 
                 stringsAsFactors = FALSE)

Data %>% 
  mutate(Type = str_match(Assignment, Types$Type)[1,])

1 Ответ

1 голос
/ 11 июля 2019

Вы можете добавить новый столбец Code в ваш тип data.frame, а затем объединить его с исходной таблицей.Вам также необходимо создать столбец «Код» в вашем файле data.frame.

    library(dplyr)
    library(stringr)

    Data <- data.frame(Assignment = c("C-209", "B-543", "G-01", "LOG"))

    Types <- data.frame(Type = c("Cartography", "Biology", "Geology","Logistic"),
                    Code = c("C","B","G","L"), # Create new column here
                    stringsAsFactors = FALSE)


    Data <- Data %>% mutate(Code = substr(Assignment,1L,1L)) # extract first character

    Data <- left_join(Data, Types, by = "Code") %>% select(Assignment, Type) # combine
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...