转置数据帧后重命名数据框中的列

时间:2016-02-21 13:02:49

标签: r

x1=c(55,60,75,80)
x2=c(30,20,15,23)
x3=c(4,3,2,6)
x=data.frame(x1,x2,x3)
tr=t(x)

 names(tr) <- paste("G",ncol(tr),sep=".")
# tr
      [,1] [,2] [,3] [,4]
# x1   55   60   75   80
# x2   30   20   15   23
# x3    4    3    2    6
# attr(,"names")
#  [1] "G.4" NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA 

如何将adataframe中的每个新列重命名为列(1)的G1,列(2)的G2,列(3)的G3和列(4)的G4

#      G1   G2   G3   G4
# x1   55   60   75   80
# x2   30   20   15   23
# x3    4    3    2    6

1 个答案:

答案 0 :(得分:3)

我们需要colnames参数

colnames(tr) <- paste0("G", 1:ncol(tr))
tr
#   G1 G2 G3 G4
#x1 55 60 75 80
#x2 30 20 15 23
#x3  4  3  2  6

因为trmatrixmatrix是具有vector属性的dim。因此,如果我们使用names,则只会为name

中的每个元素提供matrix属性