it-swarm.asia

كيف يمكنني تسمية عمود "أسماء الصفوف" في ص

أنا أعمل مع إطار بيانات في r حيث تكون أسماء الصفوف ذات معنى. وبالتالي ، أود إعطاء اسم عمود الصفوف. كيف أقوم بهذا العمل؟

52
Ben

يبدو أنك تريد تحويل الأسماء المستعارة إلى عمود مناسب من 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

بدلاً من ذلك ، إذا كانت جميع بياناتك من نفس الفئة (أي ، كلها رقمية ، أو كل السلسلة) ، يمكنك التحويل إلى 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"
67
Ricardo Saporta

تحتوي الحزمة 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
10
Joe