没有公共密钥合并2个文件

时间:2018-09-19 21:34:01

标签: r merge spss

我有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
    .
    .

用户ID文件

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

2 个答案:

答案 0 :(得分:1)

假设您已将时间数据存储在数据帧中,并将用户数据存储在矢量中,则我可以想到R中最简单的解决方案:

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

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

答案 1 :(得分:0)

在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".