Preciso transpor um grande quadro de dados e usei:
df.aree <- t(df.aree)
df.aree <- as.data.frame(df.aree)
Isso é o que eu obtenho:
df.aree[c(1:5),c(1:5)]
10428 10760 12148 11865
name M231T3 M961T5 M960T6 M231T19
GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
Meu problema são os novos nomes de coluna (10428, 10760, 12148, 11865) que preciso eliminar porque preciso usar a primeira linha como nomes de coluna.
Tentei com a col.names()
função mas não obtive o que preciso.
Você tem alguma sugestão?
EDITAR
Obrigado por sua sugestão!!! Usando-o eu obtenho:
df.aree[c(1:5),c(1:5)]
M231T3 M961T5 M960T6 M231T19
GS04.A 5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
GS16.A 5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
GS20.A 5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
GS40.A 3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
GS44.A 1.225938e+04 2.681887e+03 1.154924e+04 4.202394e+04
Agora preciso transformar os nomes das linhas (GS ..) em uma coluna de fator ....
colnames(df.aree)<-df.aree[1,];df.aree<-df.aree[2:nrow(df.aree),]
?t
ing frame de dados também é bastante ineficiente. Se você puder, use a matriz.Respostas:
É melhor você não transpor data.frame enquanto a coluna de nome estiver nele - todos os valores numéricos serão transformados em strings!
Esta é uma solução que mantém os números como números:
fonte
fonte
Você pode usar o
transpose
função dadata.table
biblioteca. Solução simples e rápida que mantém osnumeric
valores comonumeric
.fonte
setnames(t_mtcars, rownames(mtcars))
seria a formadata.table
de definir nomes em um data.table (e se estiver usando umdata.table
objeto, você nãorownames
Aproveite
as.matrix
:fonte