r - 扩展组内所有可能组合的网格

标签 r

我面临以下问题。我有一份并购交易 list ,每笔交易都包括有关 (1) 收购方、(2) 供应商、(3) 目标的数据。数据以关系可以是 n:n:n 的方式构建,看起来类似于以下内容:

dealid acquirer target vendor
1      FirmA    FirmB  FirmC
1      FirmD           FirmE
2      .....................

所以问题是交易中的行本身没有意义,例如,FirmD 也是 FirmB 的共同收购者。

我现在需要创建所有可能的收购方-目标-供应商组合 每个dealid内 .我设法用 expand.grid 扩展了网格函数或简单地通过 merge .但是,我不知道如何扩展组内所有可能组合的网格。

最佳答案

你可以用 dplyr 做到这一点和 expand来自 tidyr .

df <- read.table(text="dealid acquirer target vendor
1      FirmA    FirmB  FirmC
1      FirmD    NA     FirmE
2      FirmA    NA     FirmC
2      FirmD    NA     FirmE
2      FirmG    FirmF  FirmE",header=TRUE,stringsAsFactors=FALSE)

library(dplyr);library(tidyr)
df%>%
  group_by(dealid)%>%
  expand(acquirer, target, vendor)

   dealid acquirer target vendor
    <int>    <chr>  <chr>  <chr>
 1      1    FirmA  FirmB  FirmC
 2      1    FirmA  FirmB  FirmE
 3      1    FirmD  FirmB  FirmC
 4      1    FirmD  FirmB  FirmE
 5      2    FirmA  FirmF  FirmC
 6      2    FirmA  FirmF  FirmE
 7      2    FirmD  FirmF  FirmC
 8      2    FirmD  FirmF  FirmE
 9      2    FirmG  FirmF  FirmC
10      2    FirmG  FirmF  FirmE

关于r - 扩展组内所有可能组合的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44870494/

相关文章:

r - R中并行计算的stdout和stderr

r - 在 packageVersion 上使用比较运算符

R:避免意外覆盖变量

r - 使用 gcc OpenMP 支持从源代码构建 R 时出错

r - 在 R 中提取特定于值的行

r - R:提取文件名的一部分

r - littler 或 Rscript 的外部图形设备

r - 检查一个数据框列中的值是否存在于第二个数据框中

R ggplot2 : Points, 图中的线条和误差线重叠不一致

在 R 中使用 stringr 的带有非捕获组的正则表达式