如何命名r中的“行名”列?
我正在使用r中的数据框,我的行名是有意义的。 因此,我想给列名称列名。 我该怎么做呢?
这听起来像你想要将rownames转换为data.frame的适当的列。 例如:
# add the rownames as a proper column myDF <- cbind(Row.Names = rownames(myDF), myDF) myDF # Row.Names id val vr2 # row_one row_one A 1 23 # row_two row_two A 2 24 # row_three row_three B 3 25 # row_four row_four C 4 26
如果你想然后删除原来的rownames:
rownames(myDF) <- NULL myDF # Row.Names id val vr2 # 1 row_one A 1 23 # 2 row_two A 2 24 # 3 row_three B 3 25 # 4 row_four C 4 26
或者,如果所有数据都是相同的类(即所有数字或全部string),则可以转换为Matrix并命名dimnames
myMat <- as.matrix(myDF) names(dimnames(myMat)) <- c("Names.of.Rows", "") myMat # Names.of.Rows id val vr2 # row_one "A" "1" "23" # row_two "A" "2" "24" # row_three "B" "3" "25" # row_four "C" "4" "26"
tibble
包现在有一个专门的function,可以将行名转换为显式variables。
library(tibble) rownames_to_column(mtcars, var="das_Auto") %>% head
得到:
das_Auto mpg cyl disp hp drat wt qsec vs am gear carb 1 Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 2 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 3 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 4 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 5 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 6 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1