- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- 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
To Continue Learning Please Login
Login with Google