Это лучший способ предоставить данные. Введите dput()
, чтобы поместить его в эту форму.
Days <- structure(list(Day = c(1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07,
1.08, 1.09, 1.1), A = c(6L, 3L, 2L, 1L, 1L, 1L, 4L, 7L, 9L, 5L),
B = c(3L, 7L, 10L, 1L, 1L, 9L, 3L, 7L, 9L, 7L), C = c(4L,
3L, 9L, 5L, 1L, 5L, 7L, 9L, 8L, 3L), D = c(9L, 2L, 2L, 9L, 10L,
5L, 7L, 4L, 4L, 1L)), class = "data.frame", row.names = c(NA, -10L))
Чтобы получить табуляцию за 10 дней, просто сверните данные с помощью unlist()
:
FreqTable <- table(unlist(Days[, -1])) # Tabulate all rows
FreqTable
#
# 1 2 3 4 5 6 7 8 9 10
# 7 3 5 4 4 1 6 1 7 2
Top5.freq <- sort(FreqTable, decreasing=TRUE)[1:5] # Top 5 products
Top5.prod <- as.numeric(names(Top5.freq)) # Product names
d1 <- data.frame(Day="1.10", t(Top5.prod)) # Row 1 of d1
colnames(d1)[-1] <- c("1st", "2nd", "3rd", "4th", "5th")
d1
# Day 1st 2nd 3rd 4th 5th
# 1 1.10 1 9 7 3 4
Вы не предоставили данные для дня 11 или укажите, представляет ли он один день или совокупность дней 1-11.