每个人多行:折叠并合并为向量

时间:2019-03-15 21:55:11

标签: r

我的确凿数据如下:

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

如您所见,对于某些公司,某些列具有不同的组件,尽管并非全部。发生这种情况时,公司将占用多行,在此示例中就是Firm2的情况。但是,公司ID不会重复。

我想转换数据,使其看起来像这样:

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

也就是说,我需要:
1)将与同一公司相关的行折叠为单行:公司的初始行以及第一列中没有公司ID的所有后续行
2)为带有某些公司多个输入的那些列创建向量或列表。

我认为向量大小可能是个问题:也就是说,给定列中的所有单元格都需要相同的向量大小。因此,最终结果可能实际上需要如下所示:

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

我很好,尽管我更希望消除无用的NA。不过不是优先事项。

无论如何。我可以使用R基本函数或dplyr / tidyr来实现,以最佳方式为准。请注意,我并不是完全希望将这些数据从长格式转换为宽格式。

我也考虑过使用lapply,但不确定如何编写函数。

0 个答案:

没有答案