Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a variable of rownames?

Tags:

r

I have an object in R that looks like this:

                 returns   
2010-1-4    -0.015933327              
2010-1-11   -0.015042868    
2010-1-18    0.005350297  
2010-1-25   -0.049324703    
2010-2-1    -0.052674121  

I want to make it into:

        date       returns             
1 2010-01-04 -0.0159333272          
2 2010-01-11 -0.0150428685        
3 2010-01-18  0.0053502965        
4 2010-01-25 -0.0493247026       
5 2010-02-01 -0.0526741206        

How can I do this?

like image 908
user1142618 Avatar asked Jul 11 '12 07:07

user1142618


People also ask

How do you make a Rowname a column in R?

Method 1: Using row. row.name() function is used to set and get the name of the DataFrame. Apply the row.name() function to the copy of the DataFrame and a name to the column which contains the name of the column with the help of the $ sign.

How do I assign a Rowname in R?

Method 1 : using rownames() A data frame's rows can be accessed using rownames() method in the R programming language. We can specify the new row names using a vector of numerical or strings and assign it back to the rownames() method. The data frame is then modified reflecting the new row names.

What does Rownames do in R?

rownames() function in R Language is used to set the names to rows of a matrix.

What does the function Rowid_to_column () do?

Also included is rowid_to_column() , which adds a column at the start of the dataframe of ascending sequential row ids starting at 1. Note that this will remove any existing row names.


2 Answers

Make a new column of based on the rownames of your dataset:

# Read in your example data
DF = read.table(header=TRUE, text=" returns
2010-1-4 -0.015933327
2010-1-11 -0.015042868
2010-1-18 0.005350297
2010-1-25 -0.049324703
2010-2-1 -0.052674121")
DF
#                returns
# 2010-1-4  -0.015933327
# 2010-1-11 -0.015042868
# 2010-1-18  0.005350297
# 2010-1-25 -0.049324703
# 2010-2-1  -0.052674121

# Create a `date` variable
DF$date = rownames(DF)
# Reset the `rownames` of your original data
rownames(DF) = NULL
# Format the `date` variable properly
DF$date = strptime(DF$date, "%Y-%m-%d")
DF
#        returns       date
# 1 -0.015933327 2010-01-04
# 2 -0.015042868 2010-01-11
# 3  0.005350297 2010-01-18
# 4 -0.049324703 2010-01-25
# 5 -0.052674121 2010-02-01
like image 120
A5C1D2H2I1M1N2O1R2T1 Avatar answered Oct 12 '22 11:10

A5C1D2H2I1M1N2O1R2T1


Quite fuzzy question. But for example you can rename columns with

colnames(data) <- c('date','returns')

If you need a first column with sequential numbering try this:

data <- cbind(1:nrow(data), data)

If you just need the row numbers:

row.names(data) <- 1:nrow(data)
like image 43
DrDom Avatar answered Oct 12 '22 11:10

DrDom