Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
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