How to create a variable of rownames?

后端 未结 3 849
北海茫月
北海茫月 2020-12-09 19:18

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.         


        
相关标签:
3条回答
  • 2020-12-09 19:46

    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)
    
    0 讨论(0)
  • 2020-12-09 19:52

    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
    
    0 讨论(0)
  • 2020-12-09 19:59

    You can simply do like this :

    date <- t(as.data.frame(strsplit(as.character(weekly.returns),split=" ")))[,1]
    returns <- t(as.data.frame(strsplit(as.character(weekly.returns),split=" ")))[,2]
    

    data.frame(date,returns,row.names=NULL) it will give you this :

            date     returns
    1 2010-01-08 -0.07830343
    2 2010-01-15 -0.05176991
    3 2010-01-22  0.07699487
    4 2010-01-29 -0.05979203
    5 2010-02-01 -0.02119816
    
    0 讨论(0)
提交回复
热议问题