【问题标题】:Merging 2 files without a common key合并 2 个没有公共密钥的文件
【发布时间】:2018-09-19 21:34:00
【问题描述】:

我有 2 个文件。一个是 time_file,它有 3000 行,另一个是 userid 文件,它有 2000 行。我想将两者合并,以便userid 文件中的每一行(ID)与time_file 每一行的完整数据配对。

第 1-3000 行将显示每个日期的第一个 userid

第 3001-6000 行将显示带有每个日期的第二个 userid,依此类推。

提前致谢!

时间档案

    mo  day year    date
    11  1   2015    11/1/2015
    11  2   2015    11/2/2015
    11  3   2015    11/3/2015
    11  4   2015    11/4/2015
    11  5   2015    11/5/2015
    .
    .

用户名文件

userid
154
155
157
158
159
160
.
.

理想格式(我想要的)

    mo  day year    date        userid
    11  1   2015    11/1/2015   154
    11  2   2015    11/2/2015   154
    11  3   2015    11/3/2015   154
    11  4   2015    11/4/2015   154
    11  5   2015    11/5/2015   154
    .
    .
    3   28  2017    3/28/2017   154
    3   29  2017    3/29/2017   154
    3   30  2017    3/30/2017   154
    3   31  2017    3/31/2017   154
    11  1   2015    11/1/2015   155
    11  2   2015    11/2/2015   155
    11  3   2015    11/3/2015   155
    11  4   2015    11/4/2015   155
    11  5   2015    11/5/2015   155
    11  6   2015    11/6/2015   155

【问题讨论】:

  • 请使用dput()(不是strhead或图片/屏幕截图)分享您的数据样本,以便其他人可以提供帮助。在此处查看更多信息stackoverflow.com/questions/5963269/…
  • @Tung : 我附上了截图!但会尝试使用 dput() 或其他方式共享数据样本。
  • SPSS 解决方案是通过STATS CARTPROD 命令。如果问题被重新打开,将发布一些代码。

标签: r merge spss


【解决方案1】:

我能想到的 R 中最简单的解决方案,假设您将时间数据放在数据框中,将用户数据放在向量中:

final_df <- cbind(date_df, "userid" = rep(user, each = 3000))

这将重复每个 user_id 3000 次,然后将 user_id 列绑定到日期数据框。

【讨论】:

    【解决方案2】:

    在 SPSS 中,您可以为此使用笛卡尔积函数:

    首先,这会重新创建您的示例数据:

    data list free/mo  day year (3f4)   date (a12).
    begin data.
    11  1   2015    11/1/2015
    11  2   2015    11/2/2015
    11  3   2015    11/3/2015
    11  4   2015    11/4/2015
    11  5   2015    11/5/2015
    end data.
    DATASET NAME time_file.
    
    data list free/ userid.
    begin data.
    154,155,157,158,159,160
    end data.
    DATASET NAME userid.
    

    现在将按照您的要求合并两个表格:

    STATS CARTPROD VAR1=userid INPUT2=time_file VAR2=mo  day year date 
    /SAVE OUTFILE="path\your combined data.sav".
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2022-11-22
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多