Долгожданный читатель и первый постер, посмотрим, как это происходит ...Как разделять значения в столбце на несколько столбцов на основе коэффициента в R?
Я работаю в R, чтобы создать резюме средних издержек на карманные расходы для разных лекарств на основе разных поставщиков медицинских услуг. В данных у меня есть еще много компаний (~ 5000), чем я делаю продукты (4). Я знаю, что начать с агрегирование из кармана стоимости по продукции и медицинских услуг, как показано ниже:
avgdf <- aggregate(price ~ company + product, data= df, mean)
colnames(avgdf) <- c("company", "prod", "avg_price")
Результирующий кадр данных выглядит следующим образом: (Примечание по соображениям конфиденциальности я не могу отправить фактические данные, но имеют чтобы показать общий пример)
company prod avg_price
A 1 88
A 2 63
A 3 46
B 1 55
C 2 8
D 1 67
D 2 42
D 3 40
D 4 61
E 1 13
E 2 17
F 1 85
F 4 17
Я хочу, чтобы преобразовать фрейм данных таким образом, чтобы prod
столбец разделен на 4 колонки, по одному для каждого из соответствующих продуктов, а также значения этих 4-х столбцов заполняются в соответствии к своей паре продуктов компании. Другими словами, я хочу, чтобы таблица выглядит следующим образом:
company prod1.avg_price prod2.avg_price prod3.avg_price prod4.avg_price
A 88 63 46 NA
B 55 NA NA NA
C NA 2 NA NA
D 67 42 40 61
E 13 17 NA NA
F 85 NA NA 17
Я не должен иметь столько, сколько NA у меня в наборе данных, поскольку есть в моем примере, но я хочу решение, которое может справиться с этим. Я предполагаю использовать функции reshape2
melt
и dcast
, но я не уверен, как их реализовать. Заранее благодарю за помощь!
С dplyr и tidyr, 'avgdf%>% мутируют (Prod = paste0 ('Прод', Prod, '.avg_price'))%>% спрэд (Prod, avg_price)' – alistaire