отображать деревья анализа несоответствий в R (используя graphviz)

Я делаю анализ несоответствий в R, и у меня проблемы с отображением дерева с помощью graphviz. Я сделал все, как описано в Studer et al 2011 (in: Guillet et al: Advances in Knowledge Discovery and Management). Я использую команду disstree для построения своего дерева с именем tree.lcp, а затем пытаюсь отобразить его с помощью graphviz:

seqtree2dot(tree.lcp, filename="hh.lcp", seqdata=seqhh)

shell("dot -Tsvg -O hh.lcp.dot") 

С первой командой проблем нет, но вторая выдает это сообщение об ошибке:

Не удается найти команду «точка».
Сообщения об ошибках:
1: команда 'C: \ Windows \ system32 \ cmd.exe / c точка -Tsvg -O hh.lcp.dot' дала статус 1
2: В оболочке ("точка -Tsvg -O hh.lcp.dot"): процесс 'точка -Tsvg -O hh.lcp.dot' завершился неудачно - код ошибки 1

Я полагаю, это как-то связано с командой th path (см. GraphViz: Windows PATH не установлен с новым установщиком, проблема при вызове из R), но я установил GraphViz в C: \ Program Files (x86) \ Graphviz2.36, который, как я понимаю, используется по умолчанию .

Есть идеи, в чем проблема? И как я могу включить путь в команду оболочки, если проблема по-прежнему связана с командой пути?

Спасибо! Катарина


person user3534907    schedule 23.04.2014    source источник


Ответы (2)


Вы можете указать путь следующим образом

shell(paste('"C:/Program Files (x86)/Graphviz2.36/dot"','-Tsvg -O hh.lcp.dot'))

Однако, если вы хотите построить дерево из различий между последовательностями, вам, вероятно, лучше использовать более новую упрощенную функцию seqtreedisplay, которая генерирует график непосредственно из объекта seqtree, то есть результата функции seqtree. Обычно seqtreedisplay должен найти Graphviz самостоятельно.

Для получения дополнительных сведений см. Страницу справки, набрав help(seqtreedisplay).

person Gilbert    schedule 23.04.2014

В последней версии TraMineR есть новая функция, которая запускает все напрямую. Функция называется seqtreedisplay.

seqtreedisplay(tree.lcp, type="d")

Попробуйте запустить: TraMineR.checkupdates(), чтобы узнать, установлена ​​ли у вас последняя стабильная версия.

person Matthias Studer    schedule 23.04.2014
comment
@ gilbert @Mattias Studer: seqtreedisplay, или, точнее, команда disstreedisplay была именно тем, что мне было нужно. Graphviz был найден автоматически, и теперь у меня есть деревья. Спасибо! Катарина - person user3534907; 25.04.2014
comment
@Katharina Пожалуйста, проголосуйте за и примите один из ответов (Гилберта кажется более точным). Если вы это сделаете, будущие читатели, столкнувшиеся с подобной проблемой, теперь узнают, как ее решить. - person Matthias Studer; 26.04.2014