如果这个问题非常简单,我道歉,但我正在寻找一种方法来将一列连续的整数添加到数据框中(如果我的数据框有200个观察值,例如,从1开始第一次观察,最后一次以200结尾)。
我该怎么做?
答案 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)
如果使用的是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