У меня есть данные фирмы, которые выглядят так:
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
, но я не уверен, как написать функцию.