У меня есть следующий набор данных
id<-c(1,1,1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4)
s02<-c(001,002,003,004,001,002,003,004,005,001,002,003,004,005,006,007,001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016,017,018,019,020,021,022,023,024,025,026,027,028,029)
dat1<-data.frame(id,s02)
Я бы хотел sh создать набор данных на основе этого dat1. Я бы wi sh имел код R, который автоматически создает n s02 как s02__0, s02__1, s02__2, s02__3, s02__4, и в этом случае мой n == 5. Затем на основе идентификатора в dat1 код должен назначить каждый s02 соответствующим s02__0 - s02__4 в кадре данных. Эти строки однозначно идентифицируются другим идентификатором ID_2, созданным на основе количества строк. Если в созданной строке s02 меньше, то оставшиеся ячейки должны быть выделены ## N / A ##. если s02 больше, чем n, то формируется другая новая строка с приращением от уникального ID_2 для размещения дополнительных s02, и каждая пустая ячейка по-прежнему заполняется ## N / A ##. Из вышеприведенного набора данных я бы хотел sh получить следующий результат
id<-c(1,2,3,3,4,4,4,4,4,4)
id_2<-c(1,1,1,2,1,2,3,4,5,6)
s02__0<-c(1,1,1,6,1,6,11,16,21,26)
s02__1<-c(2,2,2,7,2,7,12,17,22,27)
s02__2<-c(3,3,3,##N/A##,3,8,13,18,23,28)
s02__3<-c(4,4,4,##N/A##,4,9,14,19,24,29)
s02__4<-c(##N/A##,5,5,##N/A##,5,10,15,20,25,##N/A##)
dat2<-data.frame(id,id_2,s02__0,s02__1,s02__2,s02__3,s02__4)