我有下面的数据框:
输入:
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'))
[其他选项:
library(stringr)
df %>%
filter(a != "id") %>%
mutate(id = str_extract(value, "\\d+$"))