Слияние 2 файлов без общего ключа - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть 2 файла.Один из них - time_file с 3000 строками, а другой - userid файл с 2000 строками.Я хочу объединить их, чтобы каждая строка (ID) в файле userid была в паре с полными данными из каждой строки time_file.

Строки 1-3000 будут показывать первые userid с каждой из дат.

Строки 3001-6000 будут показывать 2-е 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

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

В 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".
0 голосов
/ 20 сентября 2018

Самое простое решение в RI может придумать, если вы получили ваши данные времени во фрейме данных и ваши данные пользователя в векторе:

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

Это будет повторять каждый user_id 3000 раз, затем связыватьсястолбец user_id для фрейма данных даты.

...