2016-03-21 18 views
8

Tôi muốn tạo một biểu đồ con của đồ thị của mạng có hướng với tất cả các đỉnh chia sẻ một thuộc tính đỉnh nhất định (vd: V (Grph) $ year == "1952") và hàng xóm đầu tiên (ngay lập tức) của họ, chỉ dựa trên mức độ.igraph - Hàng xóm dưới dạng đồ thị con - make_ego_graph() làm đồ thị đơn

Tôi đã thử ego(), make_ego_graph(), neighbors()adjacent_vertices().

Ví dụ: CitGraph <- make_ego_graph(Grph, 1, nodes = which(V(Grph)$year=="1952"), mode = "out") đưa ra danh sách biểu đồ (và không phải là toàn bộ đơn nhất) và đáng ngạc nhiên mất hai giờ cho 50k đỉnh trong năm nay và 150 nghìn hàng xóm được trỏ tới.

Một cách tiếp cận tôi có thể nghĩ là tổng hợp tất cả các biểu đồ này trong danh sách nhưng không biết cách thực hiện. Ngoài ra, tôi muốn bảo tồn các thuộc tính đỉnh như mục tiêu cuối cùng của tôi là tính toán assortativity_nominal(), dựa trên một thuộc tính đỉnh khác (vị trí địa lý trong trường hợp này).

Cảm ơn trước vì bất kỳ đề xuất nào bạn có thể có!

Trả lời

5

Thực tế make_ego_graph trả về biểu đồ cho vùng lân cận cho từng đỉnh trong danh sách nodes.

Tôi đề nghị bạn giải quyết nó bằng cách sử dụng danh sách các cạnh bạn cần đưa vào biểu đồ con, thay vì danh sách các đỉnh. Giả sử danh sách các đỉnh đã được giải quyết như list_of_vertices <- V(Grph)$year == "1952" hoặc bất cứ điều gì nó là tình trạng của bạn, bạn sẽ làm một cái gì đó như thế nào,

list_of_edges <- E(your_graph)[from(list_of_vertices) | to(list_of_vertices)] 
your_subgraph <- subgraph.edges(your_graph, list_of_edges) 

(Tôi đang sử dụng một đồ thị có hướng.)

Hy vọng nó giúp.

+0

Tuyệt vời, nó hoạt động hoàn hảo, cảm ơn bạn! Đối với ví dụ của tôi, tôi phải điều chỉnh dòng đầu tiên của mã của bạn thành 'list_of_edges <- E (your_graph) [từ (list_of_vertices)]' vì tôi không chỉ quan tâm đến các cạnh giữa 1952-đỉnh mà, rộng hơn, tất cả đều bắt nguồn từ chúng. – user5835099

+0

Bạn được chào đón nhiều hơn. Chúc mừng. – lrnzcig

Các vấn đề liên quan