Для значения в столбце 2 замените все значения в столбце 1 на первое вхождение в столбце 1. - PullRequest
0 голосов
/ 25 мая 2019

Я очищаю большой набор данных, и в столбце 1 есть несколько вариантов написания названия компании.Идентификатор компании в столбце 2 одинаков для всех названий компании, поэтому я хотел бы выполнить поиск по идентификатору компании и заменить все написания компании на первое написание (не важно, какое).

IЯ новичок в R и синтаксисе data.table, но попытался перебрать идентификаторы компании и использовать setDT для замены значений названия компании.Однако я не могу понять, как заменить на первый экземпляр правописания названия компании только те компании, которые имеют один и тот же идентификатор компании.

Вот где я до сих пор:


library(data.table)

#Sample Datatable

CompanyDT <- data.table(Company_Name=c("Froklo","Forklo","Forlko","Corp3","Grap","Garp"), Company_ID=c(1,1,1,2,3,3))

Цикл, над которым я работаю

for(j in CompanyDT[,.(Company_ID)])
  FirstFacName <- CompanyDT[Company_ID[j], Company_Name]
  setDT(CompanyDT)[, Company_Name:=FirstFacName]

Я хочу получить этот результат, когда первый экземпляр правописания заменит названия всех компаний с одинаковым идентификатором компании:

data.table(Company_Name=c("Froklo","Froklo","Froklo","Corp3","Grap","Grap"), Company_ID=c(1,1,1,2,3,3))

, но я получаюэтот результат с первым названием компании в таблице, заменяющим все названия компаний, независимо от идентификатора компании:

data.table(Company_Name=c("Froklo","Froklo","Froklo","Froklo","Froklo","Froklo"), Company_ID=c(1,1,1,2,3,3))
dt3

1 Ответ

0 голосов
/ 25 мая 2019

Путь dplyr будет:

library(dplyr)
CompanyDT %>% 
  group_by(Company_ID) %>%
  mutate(Company_Name_new = first(Company_Name))

# A tibble: 6 x 3
# Groups:   Company_ID [3]
  Company_Name Company_ID Company_Name_new
  <chr>             <dbl> <chr>           
1 Froklo                1 Froklo          
2 Forkslo               1 Froklo          
3 Forlko                1 Froklo          
4 Corp3                 2 Corp3           
5 Grap                  3 Grap            
6 Garp                  3 Grap 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...