как связать строки двух фреймов данных так, чтобы строки с одинаковым значением в столбце идентификатора оставались рядом друг с другом - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть два фрейма данных, которые выглядят следующим образом:

data.one:

          cust_id stats  AIRLINE AUTO RENTAL CLOTHING STORES
   1:         495   SUM 45493.42     3103.90        20927.56
   2:         692   SUM 39954.78        0.00        20479.60
   3:         728   SUM 25813.03     3504.74         5924.71
   4:        1794   SUM     0.00        0.00            0.00
   5:        3060   SUM     0.00        0.00         7146.31

data.two:

         cust_id stats AIRLINE AUTO RENTAL CLOTHING STORES
   1:         495   MAX 4950.00     1000.00            3140
   2:         692   MAX 6479.71        0.00            1880
   3:         728   MAX 5642.68     1752.37            1395
   4:        1794   MAX    0.00        0.00               0
   5:        3060   MAX    0.00        0.00            1338

Я хочу связать их вместе(по строкам), чтобы результирующий фрейм данных выглядел следующим образом:

           cust_id stats AIRLINE AUTO RENTAL CLOTHING STORES
   1:         495   SUM   45493.42     3103.90        20927.56
   2:         495   MAX   4950.00      1000.00        3140
   3:         692   SUM   39954.78     0.00           20479.60
   4:         692   MAX   6479.71      0.00           1880
   5:         728   SUM   25813.03     3504.74        5924.71
   6:         728   MAX   5642.68      1752.37        1395
   .
   .
   .

, то есть строки с одинаковыми cust_id из обоих фреймов данных остаются рядом друг с другом в фрейме связанных данных.

Спасибо, что уделили время.

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Может быть, будет полезна функция упорядочения в dplyr:

custid <- c(111,222,333)
otherVar <- c(1,2,3)

df1 <- data.frame(custid, otherVar)

custid <- c(222,333,444)
otherVar <- c(2,3,4)

df2 <- data.frame(custid, otherVar)

df <- df1 %>%
  bind_rows(df2) %>%
  arrange(custid)
0 голосов
/ 04 апреля 2019

Просто свяжите тему вместе, используя rbind, а затем отсортируйте кадр данных, используя order:

mydata <- rbind(data1, data2)

mydata[order(mydata$cust_id), ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...