J'ai un big dataframe, mais un petit exemple serait comme ceci:
mydf <- data.frame(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
Je souhaite transposer la trame de données et conserver la colonne 1 (A) comme en-tête de colonne (lettre [1:10]) comme noms de variables. Ce qui suit sont des essais de zéro des codes infructueux.
tmydf = data.frame(t(mydf))
names(tmydf) <- tmydf[1,]
Merci;
Voici une façon
tmydf = setNames(data.frame(t(mydf[,-1])), mydf[,1])
Quelque chose comme ça peut-être:
tmp <- as.data.frame(t(mydf[,-1]))
> colnames(tmp) <- mydf$A
> tmp
a b c d e f g h i j
M1 11 12 13 14 15 16 17 18 19 20
M2 31 32 33 34 35 36 37 38 39 40
M3 41 42 43 44 45 46 47 48 49 50
Variante Data.table de Ramnath avec indication en chaîne du nom de variable souhaité.
mydf <- data.table(A = c(letters[1:10]), M1 = c(11:20), M2 = c(31:40), M3 = c(41:50))
tmydf <- setNames(data.table(t(mydf[,-"A"])), mydf[["A"]])