我是R的新手,我需要你的帮助来弄清楚与一个非常耗时的过程相关的问题。

我有一个非常大的数据集,我试图分组来创建文件数据。 我写的代码是有效的,但它需要很长时间,我不知道如何使它更快。

这是我将数据集子集化的代码段

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)
}

===============>>#1 票数:3 已采纳

像这样:

mylist    <- split(df, list(df$a, df$b, df$c, df$d), drop = TRUE)
filenames <- paste0(names(mylist), ".dat")

mapply(write.table, mylist, file = filenames,
      col.names = FALSE, row.names = FALSE, sep = "\t", quote = FALSE)

drop = TRUE选项使得它不会为没有数据的(a,b,c,d)组合创建空文件。

  ask by user2287387 translate from so

未解决问题?本站智能推荐:

1回复

R循环优化/循环太耗时

以下循环需要一段时间。 有什么办法可以更节省时间吗? 以下data.table包含27个变量和超过60万个观测值。 基本上,我需要索引X中唯一项的每个外观,即它第一次出现,第二次出现等等,然后将其合并到现有数据中作为附加列。 但是,在编译向量时我有很多库存。 谢谢。
4回复

R代码耗时太长

我运行了以下代码,这需要我很长时间才能运行。 我怎么知道它是否还在做它的工作还是卡在某个地方。 noise3是具有2418233个数据点的向量。
2回复

首次括号内的分配与完整分配一样耗时?

关于这个答案: R中的复制修改语义到底是什么,以及规范来源在哪里? 我们可以看到,在第一次用'[<-'改变向量时,即使只修改一个条目,R也会复制整个向量。 然而,在第二次,矢量“就地”改变。 如果我们测量创建和修改大向量的时间,则在不检查对象的地址的情况下这是显而易见的:
1回复

R-序列比对功能耗时太长

因此,我对R并不陌生,并且遇到了运行时问题。 我使用“ Biostrings”包(biocLite)编写了以下嵌套的while循环,以便将两个物种的蛋白质序列(如果其对位分数> 90%)进行链接。 基本上,我输入了两个蛋白质基因组,将SeqData1中的每个氨基酸序列与SeqDat
1回复

侧边栏太亮时该怎么办?

在以下玩具示例中,边栏中有很多滑块。 对于最后一个,我再也看不到右图。 有没有解决此问题的解决方案,不涉及删除滑块?
3回复

闪亮的加载微调器显示太频繁

我有一个闪亮的加载微调器,它的实现类似于他的答案 : 我遇到的问题是装载机一直出现,即使闪亮的时间只有几分之一秒。 这导致应用程序一直闪烁。 有没有办法在条件面板上基本上设置延迟,以便微调器只在页面忙碌一秒后出现?
10回复

错误:C堆栈使用率太接近限制

我正在尝试在R中运行一些深度较深的递归代码,但它一直给我这个错误: 错误:C堆栈使用率太接近限制 我从CStack_info()输出是: 我的机器上有足够的内存,我只是想弄清楚如何增加R的CStack。 编辑:有人要求一个可复制的例子。 这是导致问题的一些基本示
2回复

GenomicRanges:C堆栈使用率…太接近极限了

我正在从biovizBase包中加载内置表意文字: 用str检查实际对象是可以的: 但是打印它会导致错误: 打印任何子对象都不会导致任何错误(包括IRanges ),因此似乎错误特别是与对GRanges的打印调用有关。 此外,尝试将其与ggbio一起使用会导致相同的
1回复

opencpu是否支持耗时的R函数的异步调用?

我最近创建了一个R包,它利用了sparklyr的可能性。 我从opencpu调用包main函数,并将所有数据作为流传递给URL作为参数。 数据流通过Spark成功地以分布式方式进行了分析,并提供了一些结果。 我唯一的问题是它需要很多时间才能完成执行部分。 我试图通过opencpu.c
1回复

dendrapply错误:C堆栈使用率太接近限制

我正在以这种方式使用R的dendrapply : 其中dendro是一个'dendrogram' with 2 branches and 5902 members total, at height 2 。 一段时间后,它运行并因以下错误而崩溃: 任何想法?