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?
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.
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.
rownames() function in R Language is used to set the names to rows of a matrix.
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.
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
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With