Odpowiedzi:
W R możesz to zrobić za pomocą rep
polecenia:
tab <- data.frame(value=c(1, 2, 3, 4, 5), freq=c(2, 1, 4, 2, 1))
vec <- rep(tab$value, tab$freq)
Daje to następujący wynik:
> tab
value freq
1 1 2
2 2 1
3 3 4
4 4 2
5 5 1
> vec
[1] 1 1 2 3 3 3 3 4 4 5
Aby uzyskać szczegółowe informacje, zobacz plik pomocy dla rep
polecenia, wpisując ?rep
.
Oczywiście w R jest to prostsze.
W Excelu użyłbym kolumny pomocniczej (jeśli wartość jest w A1):
value freq help
1 1 2 =REPT(A2 & ", ",B2)
2 2 1 =C1 & REPT(A3 & ", ",B3)
3 3 4 (drag or copy from upper cell)
4 4 2 (drag or copy from upper cell)
5 5 1 (drag or copy from upper cell)
=LEFT(C6, LEN(C6)-1)
W C7 masz swój wynik
vec <- sample(1:5, 20, TRUE)
stworzony przeztable()
:rep(names(table(vec)), table(vec))
. Wynik należy następnie przekonwertować,as.numeric()
jeśli kategorie są liczbami rzeczywistymi.