从R中的行创建ID列

问题描述 投票:0回答:1

我有下面的数据框:

输入:

df <- data.frame(a=c('id','a','b','c','d','id','a','b','c','d','id','a','b','c','d','id','a','b','c','d','id','a','b','c','d'),
          value=c(1,'a1','b1','c1','d1',2,'a2','b2','c2','d2',3,'a3','b3','c3','d3',4,'a4','b4','c4','d4',5,'a5','b5','c5','d5'),
          )

我想创建新列id,并且应该在该id下分配第一个id下面的行。

所需的输出:

output <- data.frame(id=c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5),
                     var=c('a','b','c','d','a','b','c','d','a','b','c','d','a','b','c','d','a','b','c','d'),
                     value=c('a1','b1','c1','d1','a2','b2','c2','d2','a3','b3','c3','d3','a4','b4','c4','d4','a5','b5','c5','d5'))
r dplyr data.table tidyverse purrr
1个回答
1
投票

[其他选项:

library(stringr)
df %>%
  filter(a != "id") %>%
  mutate(id = str_extract(value, "\\d+$"))
© www.soinside.com 2019 - 2024. All rights reserved.