आप आर में आसन्नता सूची का भी प्रतिनिधित्व कैसे करेंगे? इसके आसन्न नोड्स के सेट के लिए परिवर्तनीय आकार की सूचियों की आवश्यकता है; तो फिर आपको एक सूची() का उपयोग करना होगा; लेकिन फिर आर में यह कितना अच्छा है?
मैं लापता चालों के साथ लंगड़ा चाल के बारे में सोच सकता हूं लेकिन वे प्रत्येक नोड के लिए एक रैखिक स्कैन करते हैं। लेकिन 1 मिनट के लिए चारों ओर खेलना, यहां है: पार्लिस्टों की एक सूची, जहां प्रत्येक जोड़ी का दूसरा आइटम आसन्नता सूची है। उत्पादन वास्तव में डेटा संरचना से पागल है।
> edgelist=data.frame(A=c(1,1,2,2,2),B=c(1,2,2,3,4))
> library(plyr)
> llply(1:max(edgelist), function(a) list(node=a, adjacents=as.list(edgelist$B[edgelist$A==a])))
[[1]]
[[1]]$node
[1] 1
[[1]]$adjacents
[[1]]$adjacents[[1]]
[1] 1
[[1]]$adjacents[[2]]
[1] 2
[[2]]
[[2]]$node
[1] 2
[[2]]$adjacents
[[2]]$adjacents[[1]]
[1] 2
[[2]]$adjacents[[2]]
[1] 3
[[2]]$adjacents[[3]]
[1] 4
[[3]]
[[3]]$node
[1] 3
[[3]]$adjacents
list()
[[4]]
[[4]]$node
[1] 4
[[4]]$adjacents
list()
स्रोत
2009-07-11 21:55:28
गुह। हां। यह एक आदर्श एक लाइनर है। विचित्र रूप से पर्याप्त, मेरे लूप समाधान के लिए दो बार तेजी से चलाता है()। –
वास्तव में यह बहुत तेज नहीं है जब आपकी तालिका 50,000 लंबी है (~ 5000 पहचानकर्ताओं के साथ)। क्या तेज विकल्प हैं? –