我正在尝试重构一个巨大的数据框(大约 12.000 个案例):在旧数据框中,一个人是一行,大约有 250 列(例如,第 1 个人,测试 A1,测试A2,测试B,...),我想要所有的结果测试 A 的总数(1 - 10 A 的总体和 24 个项目(AY)在一列中,所以一个人最终有 24 列和 10 行。在项目 AY 开始之前还有一个固定的数据框部分(个人年龄、性别等信息),我想保持原样(fixdata)。函数/循环适用于 30 个案例(我提前尝试过),但对于 12.000,它仍在计算,现在将近 24 小时。任何想法为什么?
restructure <- function(data, firstcol, numcol, numsets){
out <- data.frame(t(rep(0, (firstcol-1)+ numcol)) )
names(out) <- names(daten[0:(firstcol+numcol-1)])
for(i in 1:nrow(daten)){
fixdata <- (daten[i, 1:(firstcol-1)])
for (j in (seq(firstcol, ((firstcol-1)+ numcol* numsets), by = numcol))){
flexdata <- daten[i, j:(j+numcol-1)]
tmp <- cbind(fixdata, flexdata)
names(tmp) <- names(daten[0:(firstcol+numcol-1)])
out <- rbind(out,tmp)
}
}
out <- out[2:nrow(out),]
return(out)
}
提前致谢!