 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to convert row index number or row index name of an R data frame to a vector?
We might want to extract row index irrespective of its type (whether numeric or string) to do some calculations if it is incorrectly set as a row index. It happens during the data collection process or incorrect processing of data. Also, since row indexes are helpful to access row we must have proper names to them instead of values that might makes confusion. For example, if a data frame has row indexes as 43, 94, etc. then it might be confusing. Therefore, we should convert row indexes to a vector or a column if required.
Example
Consider the below data frame (Here, we are using simple sequence of numbers) −
> set.seed(1) > x1<-rnorm(20,0.01) > x2<-rpois(20,2) > x3<-runif(20,2,5) > df<-data.frame(x1,x2,x3) > df x1 x2 x3 1 -0.616453811 3 4.738628 2 0.193643324 2 2.880810 3 -0.825628612 3 3.377197 4 1.605280802 2 2.997184 5 0.339507772 2 3.952611 6 -0.810468384 3 2.774050 7 0.497429052 0 3.435636 8 0.748324705 2 4.298932 9 0.585781352 3 2.252741 10 -0.295388387 3 4.625964 11 1.521781168 2 3.017219 12 0.399843236 4 4.518321 13 -0.611240581 2 3.040050 14 -2.204699887 1 3.001325 15 1.134930918 0 3.429054 16 -0.034933609 0 4.676595 17 -0.006190263 1 4.593018 18 0.953836211 2 3.169969 19 0.831221195 2 4.331962 20 0.603901321 2 4.881854
Converting row index number to a vector −
> Numeric_Vector_of_row_names<-as.numeric(rownames(df)) > Numeric_Vector_of_row_names [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > is.vector(Numeric_Vector_of_row_names) [1] TRUE
Now suppose that the row index was not a number as shown below −
> rownames(df)<-LETTERS[1:20] > df x1 x2 x3 A -0.616453811 3 4.738628 B 0.193643324 2 2.880810 C -0.825628612 3 3.377197 D 1.605280802 2 2.997184 E 0.339507772 2 3.952611 F -0.810468384 3 2.774050 G 0.497429052 0 3.435636 H 0.748324705 2 4.298932 I 0.585781352 3 2.252741 J -0.295388387 3 4.625964 K 1.521781168 2 3.017219 L 0.399843236 4 4.518321 M -0.611240581 2 3.040050 N -2.204699887 1 3.001325 O 1.134930918 0 3.429054 P -0.034933609 0 4.676595 Q -0.006190263 1 4.593018 R 0.953836211 2 3.169969 S 0.831221195 2 4.331962 T 0.603901321 2 4.881854
These row indexes can be converted to a vector as shown below −
> Row_names_String<-rownames(df) > Row_names_String [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" [20] "T" > is.vector(Row_names_String) [1] TRUE
