2015-07-10 2 views
1

У меня есть следующий файл:Как построить сеть из файла ребер

Apple Pear 

Apple Raspberry 

Raspberry Pear 

Lemon Pear 

Lime Plum 

Pineapple Grape 

Как выход, я хотел бы список цепочек фруктов - на каждой строке, связать две любые фрукты, когда-либо появлялись вместе на линии, например, одна строка была бы «Ананас», «Виноград», потому что каждый появляется один раз и только один раз вместе.

Я ищу следующий вывод:

Apple Pear Raspberry Lemon 

Lime Plum 

Pineapple Grape 

Кто-нибудь есть какие-либо предложения?

Спасибо!

+0

Какие языки вам удобны? – MichaelChirico

+0

Unix, желательно, у меня тоже есть perl/python. Спасибо! – Oddish

+0

К сожалению, я имею в виду, если в любой строке есть дубликат любого столбца, тогда строки должны быть объединены (например, Apple в строках 1 и 2, малина в строках 2 и 3, а груша в строках, 1, 3 и 4 сливаются в одна линия с Лимоном, поскольку она находится на той же линии, что и Груша в строке 4) – Oddish

ответ

0

Кажется, вы в основном создали сеть фруктов, поэтому вам лучше всего использовать пакет network (о котором я только что узнал, отвечая на этот вопрос, поэтому он, вероятно, получил всевозможные функциональные возможности, пока не понимаю).

Чтобы прочитать этот текст, используйте read.table(text=...):

x<-read.table(text="Apple Pear 

Apple Raspberry 

Raspberry Pear 

Lemon Pear 

Lime Plum 

Pineapple Grape") 

Тогда просто создать network объект из x:

library(network) 
net<-network(x) 

Например, вы можете построить сеть:

plot(net) 

network (unlabelled)

Не совсем поняли, как получить ваш желаемый результат, но вы можете видеть в сюжете выше, что мы достигли той ассоциации, которую вы хотели. Не уверен в своей конечной цели, но ознакомьтесь с некоторыми учебниками для network.

+0

Большое вам спасибо :) – Oddish

Смежные вопросы