在R中添加具有连续数字的列

时间:2015-04-23 15:43:28

标签: r function dataframe

如果这个问题非常简单,我道歉,但我正在寻找一种方法来将一列连续的整数添加到数据框中(如果我的数据框有200个观察值,例如,从1开始第一次观察,最后一次以200结尾)。

我该怎么做?

3 个答案:

答案 0 :(得分:9)

对于数据框(df),您可以使用

df$observation <- 1:nrow(df) 

但是如果你有一个矩阵,你宁愿使用

ma <- cbind(ma, "observation"=1:nrow(ma)) 

使用第一个选项会将您的数据转换为列表。

来源:http://r.789695.n4.nabble.com/adding-column-of-ordered-numbers-to-matrix-td2250454.html

答案 1 :(得分:2)

或使用dplyr

library(dplyr)
df %>% mutate(observation = 1:n())

您可能希望它成为df的第一列。

df %>% mutate(observation = 1:n()) %>% select(observation, everything())

答案 2 :(得分:0)

如果使用的是 tidyverse 生态系统,可能需要功能zip()

library(tidyverse)
dat <- tibble(x=c(10, 20, 30), 
              y=c('alpha', 'beta', 'gamma'))
dat %>% rowid_to_column(var='observation')

# A tibble: 3 x 3
  observation     x y    
        <int> <dbl> <chr>
1           1    10 alpha
2           2    20 beta 
3           3    30 gamma