में रिश्तेदार डेटा को पदानुक्रमित सूची में बदलना यह मेरा पहला प्रश्न है; तो कृपया, नम्र रहो।आर
net <- graph_from_data_frame(d = Relationships,
directed = T)
plot(net)
:
library('networkD3')
Relationships<- data.frame(Parent=c("earth","earth","forest","forest","ocean","ocean","ocean","ocean"),
Child=c("ocean","forest","tree","sasquatch","fish","seaweed","mantis shrimp","sea monster"))
> Relationships
Parent Child
1 earth ocean
2 earth forest
3 forest tree
4 forest sasquatch
5 ocean fish
6 ocean seaweed
7 ocean mantis shrimp
8 ocean sea monster
अनिवार्य रूप से यह है कि एक नेटवर्क नक्शा बनाने के लिए इस्तेमाल किया जा सकता किनारों की एक सूची है:
मैं कुछ डेटा के रूप में है कि है
मैं इसे एक ऐसे रूप में रूपांतरित करना चाहता हूं जिसका उपयोग नीचे diagonalNetwork
फ़ंक्शन में किया जा सके।
Hierarchical_list <- list(name = "earth",
children = list(list(name = "ocean",
children = list(list(name = "mantis shrimp"),
list(name = "fish"),
list(name = "sea monster"),
list(name = "seaweed")
)),
list(name = "forest",
children = list(list(name = "sasquatch"),
list(name = "tree")
))
))
diagonalNetwork(Hierarchical_list)
इस तरह
:
जब मैं इस पाश का उपयोग कर सूची उत्पन्न करने का प्रयास करें:
Error in FUN(X[[i]], ...) :
'options' must be a fully named list, or have no names (NULL)
1:
List_attempt <- list()
levels<- levels(factor(Relationships$Parent))
for(n in 1:length(levels)){
Children <- subset(Relationships, Relationships$Parent == levels[n], select = Child)
for(c in 1:length(Children)){
sublist <- as.list(Children)
List_attempt <- list(List_attempt, name = levels[n],children = sublist)
}
}
diagonalNetwork(List_attempt)
मैं इस त्रुटि मिलती है) वें है diagonalNetwork
के लिए सूची बनाने का एक बेहतर तरीका है?
2) उसमें विफल होना; सही संरचना की सूची निकालने के लिए मैं अपने लूप को कैसे संशोधित कर सकता हूं?
3) क्या कोई अन्य फ़ंक्शन/पैकेज का उपयोग करना चाहिए?
किसी भी मदद के लिए धन्यवाद, मैं थोड़ी देर के लिए इस दीवार के खिलाफ अपना सिर मार रहा हूं। एसओ पर प्रश्न पूछने के बेहतर तरीकों पर प्रतिक्रिया का भी स्वागत किया जाएगा।
स्पष्टीकरण:
ऐसा ही एक सवाल यहाँ पाया जाता है, Convert a data frame to a treeNetwork compatible list। हालांकि यह डेटा संरचना पर निर्भर करता है जहां रूट हमेशा पहले कॉलम में होता है, और इसके बच्चे बाद के कॉलम में होते हैं, न कि इस प्रश्न के रूप में किनारों की एक सूची, जो आमतौर पर igraph में उपयोग की जाती है।
@ प्रोक्रैस्टिनैटस मैक्सिमस, मैंने इसे दो प्रश्नों के बीच अंतर को स्पष्ट करने के लिए संपादित किया। उसमें एक ही अंत लक्ष्य है लेकिन रिलेशनशिप डेटा को परिवर्तित नहीं कर रहा है, यह केवल तभी काम करता है जब रूट पहले कॉलम में होता है और पूरे माता-पिता की संरचना अगले कॉलम में होती है, जो कि किनारों की सूची में नहीं है। –
ठीक है, मैंने प्रश्न – Jaap