2013-07-07 3 views
38

내 행 이름이 의미가있는 r 데이터 프레임으로 작업하고 있습니다. 따라서 행 이름의 열에 이름을 지정하고 싶습니다. 어떻게해야합니까?"행 이름"열의 이름을 지정하는 방법

+7

뭔가 - rownames (mydf를)'? 그런 다음'rownames (mydf) <- NULL'을 설정하여 원래의 rownames를 제거하십시오. 왜 그렇게해야합니까? – A5C1D2H2I1M1N2O1R2T1

+1

'? rownames'을 보았습니까 – Dason

+3

@Dason : 그는 행 이름을 지정하지 않고 rownames의 이름을 지정하려고합니다 ... (왜 그렇게하고 싶습니까?) – nico

답변

54

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 


또는, 또는 모든 문자열), 당신 행렬로 변환하고 이름을 수 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" 
4

tibble 패키지에는 이제 행 이름을 명시 적 변수로 변환하는 전용 함수가 있습니다.

library(tibble) 
rownames_to_column(mtcars, var="das_Auto") %>% head 

을 제공합니다 :`mydf $ MeaningfulName <같은

  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 
관련 문제