【发布时间】:2015-12-31 18:51:07
【问题描述】:
我有一些应用家庭和 plyr 的经验。这个循环是否有更好的(非循环)解决方案(需要一段时间,因为 data.frame 有 200k 行)。
for (i in 1:nrow(all))
if (all$pmcCnt[i] > 0)
all[i,'linkPMC'] = sprintf('http://www.ncbi.nlm.nih.gov/pmc/?term=%s[uid]',str_replace_all(all$pmcpmids[i],'\\|','+'))
它的作用是:对于一列中具有 >0 值的行,新列将填充一个 URL。对于 0 行,URL 留空。
我之前的替代代码生成了太多空链接,因此 >0 条件。
all$link1=sprintf('http://www.ncbi.nlm.nih.gov/pubmed/?term=%s[uid]',str_replace_all(all$pmidsRaw,'\\|',','))
同样,我们的目标是让它超快。 (现在需要 50 多秒)和/或更多“R-ish”,不循环。 (如果可能/明智)
【问题讨论】: