Jak uzyskać ramkę danych z tymi samymi danymi, co już istniejąca macierz?Utwórz ramkę danych z macierzy w R
Uproszczony przykład mojej matrycy:
mat <- matrix(c(0, 0.5, 1, 0.1, 0.2, 0.3, 0.3, 0.4, 0.5),
ncol=3, nrow=3,
dimnames=list(NULL, c("time", "C_0", "C_1")))
> mat
time C_0 C_1
[1,] 0.0 0.1 0.3
[2,] 0.5 0.2 0.4
[3,] 1.0 0.3 0.5
chciałbym stworzyć ramkę danych, który wygląda tak:
name time val
1 C_0 0.0 0.1
2 C_0 0.5 0.2
3 C_0 1.0 0.3
4 C_1 0.0 0.3
5 C_1 0.5 0.4
6 C_1 1.0 0.5
Wszystkie moje próby są dość niezdarna, na przykład:
data.frame(cbind(c(rep("C_1", 3), rep("C_2", 3)),
rbind(cbind(mat[,"time"], mat[,"C_0"]),
cbind(mat[,"time"], mat[,"C_1"]))))
Czy ktoś ma pomysł, jak to zrobić bardziej elegancko? Proszę zauważyć, że moje prawdziwe dane mają kilka dodatkowych kolumn (40 kolumn).
Szukasz 'melt'?. Szukaj również '[r] reshape2' w polu wyszukiwania SO –
Więcej informacji tutaj: [www.statmethods.net/management/reshape.html](http://www.statmethods.net/management/reshape.html). – Backlin