Вы можете вставить код в свой пост, поэтому вставьте код, который создает ваш data.frame, например:
df <- data.frame(
Make = c('Ford', 'Ford', 'Ford', 'Chevy', 'Chrysler', 'Chrysler'),
DateSold = c('2017-07-01', '2017-08-01', '2017-10-01', '2017-01-01', '2017-03-01', '2017-04-01'),
Amount = c(30, 15, 25, 23, 22, 21) * 1e3
)
Теперь для вашего вопроса вы можете использовать библиотеку tidyverse которые имеют много полезных функций для манипулирования данными.Вы можете выполнить следующий код построчно, чтобы понять различные шаги для достижения решения.
library(tidyverse)
df %>%
gather(-Make, key = Column, value = Value) %>%
group_by(Make, Column) %>%
mutate(Count = 1:n()) %>%
unite(Column_count, Column, Count) %>%
spread(Column_count, Value)
# Make Amount_1 Amount_2 Amount_3 DateSold_1 DateSold_2 DateSold_3
# <fct> <chr> <chr> <chr> <chr> <chr> <chr>
# 1 Chevy 23000 NA NA 2017-01-01 NA NA
# 2 Chrysler 22000 21000 NA 2017-03-01 2017-04-01 NA
# 3 Ford 30000 15000 25000 2017-07-01 2017-08-01 2017-10-01