У меня ниже фрейма данных:
Ввод:
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
, и под этим * 1008 должны быть назначены строки ниже первого 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'))
ПРИМЕЧАНИЕ: Решение также должно работать для таких случаев:
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('id1','a1','b1','c1','d1','id12','a2','b2','c2','d2','idd3','a3','b3','c3','d3','i44','a4','b4','c4','d4','i15','a5','b5','c5','d5')
)
expected_output <- data.frame(id=c('id1','id1','id1','id1','id12','id12','id12','id12','idd3','idd3','idd3','idd3','i44','i44','i44','i44','i15','i15','i15','i15'),
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'))