Несколько строк на человека: свернуть и объединить в векторы - PullRequest
0 голосов
/ 16 марта 2019

У меня есть данные фирмы, которые выглядят так:

FirmName PreviousNames Location  
Firm1    Firm1_old     X
Firm2    Firm2_old     Y
NA       Firm2_old2    NA
Firm3    NA            Z   

Как видите, некоторые столбцы содержат разные компоненты для некоторых фирм, но не все.Когда это происходит, фирма занимает несколько строк, как в случае Firm2 в этом примере.Однако идентификатор фирмы не повторяется.

Я хотел бы преобразовать данные так, чтобы они выглядели так:

FirmName PreviousNames            Location  
Firm1    Firm1_old                 X
Firm2    c(Firm2_old,Firm2_old2)   Y               
Firm3    NA                        Z

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

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

FirmName PreviousNames            Location  
Firm1    c(Firm1_old,NA)           X
Firm2    c(Firm2_old,Firm2_old2)   Y               
Firm3    c(NA,NA)                  Z

Я в порядке, хотя я бы предпочел покончить с бесполезными АН.Хотя это не приоритет.

В любом случае.Я мог бы сделать это, используя базовые функции R или dplyr / tidyr, в зависимости от того, что работает лучше всего.Обратите внимание, что я не собираюсь преобразовывать эти данные из длинного в широкий формат.

Я также подумал об использовании lapply, но я не уверен, как написать функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...