Создание древовидной диаграммы из текста с вкладками в R

Я хочу сделать дерево / блок-схему следующих данных, которые правильно выделены вкладками:

Vertebrates
    fish
        goldfish
        clownfish
    amphibian
        frog
        toad
    reptiles
        snake
        lizard
        turtle
        tortoise
    birds
        sparrow
        crow
        parrot
    mammals
        dog
        cat
        horse
        whale

Как я могу преобразовать эти данные дерева в потоковую диаграмму (со стрелками, идущими сверху вниз или слева направо) (правильная позиция определяется путем подсчета количества вкладок в каждой строке). Я верю, что это можно сделать с помощью пакета «схема» (График блок-схемы перехода из состояний , http://cran.r-project.org/web/packages/diagram/index.html) но не смог понять точные шаги. Спасибо за вашу помощь.

Примерный желаемый результат приведен ниже. Там могут быть коробки вокруг текста.

РЕДАКТИРОВАТЬ: В идеале это должно быть гибкое решение, чтобы оно работало, если уровни добавлены или удалены. Например добавление 2 типов воробьев:

Vertebrates         
    fish        
        goldfish    
        clownfish   
    amphibian       
        frog    
        toad    
    reptiles        
        snake   
        lizard  
        turtle  
        tortoise    
    birds       
        sparrow 
            house
            factory
        crow    
        parrot  
        crane   
    mammals     
        dog 
        cat 
        horse   
        whale   

dat  = structure(list(V1 = c("Vertebrates", NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA), V2 = c(NA, "fish", NA, NA, "amphibian", NA, NA, "reptiles", 
NA, NA, NA, NA, "birds", NA, NA, NA, NA, NA, NA, "mammals", NA, 
NA, NA, NA), V3 = c(NA, NA, "goldfish", "clownfish", NA, "frog", 
"toad", NA, "snake", "lizard", "turtle", "tortoise", NA, "sparrow", 
NA, NA, "crow", "parrot", "crane", NA, "dog", "cat", "horse", 
"whale"), V4 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, "house", "factory", NA, NA, NA, NA, NA, NA, NA, NA
)), .Names = c("V1", "V2", "V3", "V4"), class = "data.frame", row.names = c(NA, 
-24L))
> 

Ответы на вопрос(1)

Ваш ответ на вопрос