Come ottenere un frame di dati con gli stessi dati di una matrice già esistente?Crea frame dati da una matrice in R
Un esempio semplificato della mia matrice:
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
Vorrei creare un frame di dati che assomiglia a questo:
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
tutti i miei tentativi sono abbastanza goffo, ad esempio:
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"]))))
Qualcuno ha un'idea di come farlo in modo più elegante? Si noti che i miei dati reali hanno un numero di colonne in più (40 colonne).
Siete alla ricerca di 'melt'?. Cerca anche '[r] reshape2' nella casella di ricerca SO –
Ulteriori informazioni qui: [www.statmethods.net/management/reshape.html](http://www.statmethods.net/management/reshape.html). – Backlin