在R中添加具有连续数字的列
Posted
技术标签:
【中文标题】在R中添加具有连续数字的列【英文标题】:Adding a column with consecutive numbers in R 【发布时间】:2015-07-01 22:13:55 【问题描述】:如果这个问题非常简单,我深表歉意,但我正在寻找一种方法来将一列连续整数添加到数据框中(例如,如果我的数据框有 200 个观察值,第一个从 1 开始观察,最后一个以 200 结尾)。
我该怎么做?
【问题讨论】:
【参考方案1】:对于数据框 (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
【讨论】:
【参考方案2】:或使用dplyr
。
library(dplyr)
df %>% mutate(observation = 1:n())
您可能希望它成为df
的第一列。
df %>% mutate(observation = 1:n()) %>% select(observation, everything())
【讨论】:
【参考方案3】:如果您使用 tidyverse 生态系统,可能需要tibble::rowid_to_column 函数。
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
【讨论】:
以上是关于在R中添加具有连续数字的列的主要内容,如果未能解决你的问题,请参考以下文章