r - dplyr:在group_by中生成行号/行位置

标签 r data.table dplyr

我有一个数据集,我想按组生成行位置。例如

library(data.table)

data<-data.table(Position=c(1,2,3,4,5,6,7,8,9,10),
Category=c("M","M","M","M","F","F","F","M","M","F"))

我按类别分组,并希望创建作为按组的行位置的列。类似于下面或 data.table 的内容

dataByGroup %>% group_by(Category) %>% mutate(positionInCategory = 1:nrow(Category))

无法弄清楚如何实现这一目标?

期望的输出:

| Position|Category | positionInCategory|
|--------:|:--------|------------------:|
|        1|M        |                  1|
|        2|M        |                  2|
|        3|M        |                  3|
|        4|M        |                  4|
|        5|F        |                  1|
|        6|F        |                  2|
|        7|F        |                  3|
|        8|M        |                  5|
|        9|M        |                  6|
|       10|F        |                  4|

最佳答案

尝试以下操作:

library(data.table)
library(dplyr)

data<-data.table(Position=c(1,2,3,4,5,6,7,8,9,10),
                 Category=c("M","M","M","M","F","F","F","M","M","F"))

cleanData <- data %>%
  group_by(Category) %>%
  mutate(positionInCategory = 1:n())

关于r - dplyr:在group_by中生成行号/行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36893957/

相关文章:

r - 列中的连续NA

r - 从由 "-"分隔的字符串中提取数字及其符号

R 带条件和重置的累积总和

r - 避免合并和临时 data.tables : Refining my sloppy use of data. 表代码

r - 为数据表中的每个唯一值仅选择第一个或最后一个值?

R:总结多个变量的观察次数的最快方法

RSelenium:配置 Firefox Remotedriver 以使用 Tor 网络

r - 如何将 R 中的数据与每行的模式(最常见)值聚合?

r - 使用 dplyr 或其他解决方案从另一个 data.frame 更新 data.frame 的几行和几列

r - 使用 dplyr 过滤 data.frame 中的完整案例(按案例删除)