1
我对R很新,我需要你的帮助才能找出与非常耗时的过程相关的问题。太耗时的过程
我有一个非常大的数据集,我试图创建文件dat子集。我写的代码正在工作,但需要很长时间,我不知道如何让它更快。
下面是一段代码,我子集的数据集
df<-data.frame(a,b,c,d,e,f,g,h)
mylist <- list()
for(i in 1:(length(df$a))) {
mylist[[i]] <- subset(df, a==df$a[i])
dep <- as.data.frame(mylist[i])
SHYRMODY <- split(dep, data.frame(dep$a,dep$b, dep$c, dep$d), drop=TRUE)
lapply(names(SHYRMODY),function(x, SHYRMODY)
write.table(SHYRMODY[[x]],
paste(x, ".dat", sep = ""),
col.names=FALSE,
row.names=FALSE,
sep="\t",
quote=FALSE),SHYRMODY)
}
请用英文描述你正在尝试做什么。我担心,优化什么是不正确的逻辑很可能不会为您提供任何服务。 –
您的代码似乎正在写入大量文件:这些磁盘访问可能会降低您的代码速度。 –
没有理由创建'dep',因为它只用于一行。只需在'split'调用中写入'data.frame(mylist [[i]] [,1:4])''。 –