Копирование строки из одного df в каждый ряд в другом - PullRequest
0 голосов
/ 30 августа 2018

У меня есть два кадра данных

Один df - всего одна строка, содержащая столбцы:

Description | Location
   Red      |  NH

Второй df, содержащий несколько строк (скажем, 3 строки), которые содержат столбцы:

Item_Num | Quantity | Rating | 
    01   |    2     |   A    |
    02   |    5     |   B    |
    03   |    4     |   B+   |

Я хочу сделать так, чтобы первая строка в первом df повторялась для каждой строки во второй.

   Description  | Location | Item_Num | Quantity | Rating | 
       Red      |  NH      |    01    |    2     |   A    |
       Red      |  NH      |    02    |    5     |   B    |
       Red      |  NH      |    03    |    4     |   B+   |

Я попытался поиграть с петлями, но получил ошибку. Присоединение к ним не работает для меня, и нет ключа присоединения

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Один из вариантов - использовать функцию crossing из пакета tidyr, которая создает комбинации строк из 2 наборов данных:

# example datasets
df1 = data.frame(Description = "Red",
                 Location = "NH")

df2 = data.frame(Item = 1:3,
                 Rating = c(20,25,30))

library(tidyr)

crossing(df1, df2)

#   Description Location Item Rating
# 1         Red       NH    1     20
# 2         Red       NH    2     25
# 3         Red       NH    3     30
0 голосов
/ 30 августа 2018

Это должно работать

second.df$Description <- first.df$Description
second.df$Location <- first.df$Location
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...