Я работаю с фреймом данных в r, где имена строк имеют смысл. Следовательно, я хотел бы дать столбцу имен строк имя. Как это сделать?
Как мне назвать столбец имен строк в r
Ответ 1
Похоже, вы хотите преобразовать имена розеток в соответствующий столбец 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(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
В качестве альтернативы, если все ваши данные одного класса (т.е. все числовые или все строки), вы можете преобразовать их в матрицу и назовите 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"
Ответ 2
Теперь пакет tibble
имеет специальную функцию, которая преобразует имена строк в явную переменную.
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