list1 = list(
c(4,5,6,7,1,1,1,1,3,1,3,3),
c(3,4,5,6,2,2,2,2,1,4,2,1),
c(1,2,3,4,1,1,1,1,3,2,1,1),
c(5,6,7,8,1,1,1,1,4,4,4,3),
c(2,3,4,5,2,2,2,2,2,1,2,1)
)
data1=data.frame("ID"=c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5),
"Time"=c(1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4),
"Grade"=c(4,5,6,7,3,4,5,6,1,2,3,4,5,6,7,8,2,3,4,5),
"Class"=c(1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2),
"Score"=c(3,1,3,3,1,4,2,1,3,2,1,1,4,4,4,3,2,1,2,1))
У меня есть «список1». Каждый элемент в «списке1» соответствует баллу, классу и баллу одного человека за 4 года. Таким образом, «list1» имеет 5 учеников и 12 записей для каждого ученика (4 записи для каждой из трех переменных: класс, класс и балл). Я бы sh превратил 'list1' в 'data1', который является длинным файлом данных, где 'ID' равен номеру элемента списка в 'list1'. Время равно времени записи (у каждого учащегося есть 4 такта), Оценка равна первым 4 точкам данных во ВСЕХ элементах списка 1, Класс 4 и Оценка за последние 4.
Пример вывода показано превращение «list1» в желаемый вывод «data1».
Этот набор данных ОГРОМНЫЙ, поэтому я надеюсь на эффективный подход к выполнению этого преобразования.