Re: [問題] 比對兩個list

作者: CKPILOT (新年快樂!)   2015-11-06 14:21:01
#BAD example: without memory preallocation
intersection <- names(a.list)[names(a.list) %in% names(b.list)]
result <- as.list(NULL)
for(i in intersection){
result[[i]] <- sum(table(a.list[[i]][a.list[[i]] %in% b.list[[i]]]))
}
#Fixed:
intersection <- names(a.list)[names(a.list) %in% names(b.list)]
result <- vector("list", length(intersection))
names(result) <- intersection
for(i in intersection){
result[[i]] <- sum(table(a.list[[i]][a.list[[i]] %in% b.list[[i]]]))
#cat(tracemem(result), '\n')
}
作者: celestialgod (天)   2015-11-06 14:25:00
建議:append一個NULL的list並非好習慣...還是先preallocate: result=vector('list', length(intersection))#1LjDrSmd (R_Language)
作者: CKPILOT (新年快樂!)   2015-11-06 14:31:00
Thanks, it's really important for mem allocation

Links booklink

Contact Us: admin [ a t ] ucptt.com