【发布时间】:2020-07-17 10:39:06
【问题描述】:
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))
我有 'list1' 'list1' 中的每个项目都等于一个人 4 年的成绩、班级、分数。 因此,“list1”有 5 名学生和每个学生的 12 条记录(三个变量中的每一个都有 4 条记录,成绩、班级和分数)。我希望将“list1”转换为“data1”,这是一个长数据文件,其中“ID”等于“list1”中的列表项编号。 Time 等于记录的时间(每个学生有 4 个时间度量),Grade 等于 list1 中所有元素的前 4 个数据点,Class 等于接下来的 4 个,Score 等于最后 4 个。
示例输出显示将“list1”转换为所需的输出“data1”。
这个数据集非常庞大,所以我希望有一种有效的方法来进行这种转换。
【问题讨论】:
标签: r list dataframe data.table