【发布时间】:2019-08-13 11:15:28
【问题描述】:
我在一个数据框中有大约 11,000,000 行,我需要遍历每一行,做一个小的计算,然后使用 pchisq() 从卡方分布中检索相应的 p 值。每次检索此值时,它都会附加到一个空向量,该向量稍后会添加到数据帧中。
这段代码效率很低,在服务器上运行整整一个星期,我相信这是由于 append() 函数每次都必须复制整个向量。我怎样才能让它尽可能高效?
这是当前循环:
std_err <- NULL
for (i in 1:nrow(father)){
std_err <- append(std_err, pchisq((mother[i,7]-father[i,7])^2/((mother[i,8])^2 + (father[i,8])^2), df=1, lower.tail = F))
}
father[ ,"p_std_err"] <- std_err
write.table(father, "father+standard_error.sumstats", sep = '\t', col.names = T, row.names = F, quote = F)
【问题讨论】:
-
你介意分享一个你的数据结构的例子吗?它会帮助我解决类似的问题。
标签: r