Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Tworzenie graficznych interfejsów w R

Myślę, że na początek zapoznam się z pakietem tcltk. Jeśli znacie jakieś dobre materiały to dajcie znać, na razie znalazłem :
http://www.sciviews.org/_rgui/tcltk/index.html

polecam ten artykuł, pokazuje (również w graficznej formie) do budowania jakich widgetów można użyć tcltk :

http://www.jstatsoft.org/v17/i09/paper

a może znacie jakieś prostsze lub ciekawsze narzędzia pozwalające na tworzenie interfejsów dla funkcji w R ?

Pozdrawiam

Temat: Tworzenie graficznych interfejsów w R

Tcl/Tk do prostych operacji jest zupełnie OK. Do taki celów ("embedded language") zresztą powstał.
Są i inne drogi:
http://www.r-bloggers.com/creating-guis-in-r-with-gwid...
http://sysbio.mrc-bsu.cam.ac.uk/Rwui/tutorial/quick_to...

Do bardziej złożonych zastosowań można wykorzystać dowolny język programowania + biblioteki łączących R ze światem zewnętrznym. Np. .NET + StatConnector albo R.NET. Interfejs buduje się w np. w Visual C# i podpina wywołania R, oraz odbiera wyniki i przepisuje do gridów. Na pewno wymaga to jakiejś wiedzy programistycznej, ale jak się opanuje podstawy, to potem pracuje się z tym już szybko.

http://www.goldenline.pl/forum/2478242/nowy-interfejs-...

Na forum projektu podałem rozwiązanie na przechwytywanie wykresów zwykłych i "multipage" (aoldevstat): http://rdotnet.codeplex.com/workitem/7

Przykłady: http://psychwire.wordpress.com/2011/06/19/making-guis-...
http://www.r-bloggers.com/importing-and-displaying-a-d...

Wykorzystanie source/sink

Obrazek
Adrian Olszewski edytował(a) ten post dnia 21.06.12 o godzinie 15:22

Temat: Tworzenie graficznych interfejsów w R

Może jeszcze zainteresuje Cię RGG - R Gui Generator (artykuł na jego temat | prezentacja).

Pisze się skrypt, w którym miesza się kod R z kontrolkami. W ten sposób można budować proste formularze. Niestety, nie działa warunkowe budowanie formularza (np. w zależności od wyniku obliczeń), nie ma jak podejrzeć wykresu (bo kontrolka IMG wczytuje tylko statyczne obrazy) - trzeba je zapisywać do pliku. Nie można też dodać przycisku z jakąś akcją - uruchamia się zbiorczo cały skrypt. Kontrolki służą jedynie do przekazania parametrów.

Użycie polskich znaków wywali wyjątek i formatka się nie wygeneruje.

Może służyć do parametryzowania skryptów, które potem daje się komuś, by wprowadził wartości potrzebnych parametrów i zapuścił obliczenia, a w wyniku wygeneruje się raport.


Obrazek


I na koniec taka zabaweczka (pakiet fgui) - automatyczne generowanie formatki z listą argumentów wskazanej funkcji:
http://www.r-bloggers.com/fgui-automatically-creating-...

Ale to wszystko jednak wysiada przy możliwościach "normalnego" programu komunikującego się z R i wygodzie tworzenia formatek czy to designerem, czy dynamicznie - w kodzie.Adrian Olszewski edytował(a) ten post dnia 21.06.12 o godzinie 15:43
Wojciech Sobala

Wojciech Sobala Redaktor
statystyczny,
biostatystyk,
Instytut Medycyny
Pr...

Temat: Tworzenie graficznych interfejsów w R

Jeżeli chcesz mieć dostęp przez przeglądarkę to możesz spróbować pakietu Rook.
Maciej B.

Maciej B. Doktorant

Temat: Tworzenie graficznych interfejsów w R

Cały 49 numer Journal of Statistical Software jest poświęcony GUI dla R - http://www.jstatsoft.org/v49Maciej B. edytował(a) ten post dnia 07.07.12 o godzinie 10:53
Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Tworzenie graficznych interfejsów w R

Książka na temat tworzenia interfejsów graficznych w R, dopiero zacząłem ją przeglądać :

http://www.amazon.com/Programming-Graphical-Interfaces...

Temat: Tworzenie graficznych interfejsów w R

O, bardzo fajnie, jest też w polskich księgarniach z zagraniczną literaturą, tylko że sprowadzają na zamówienie.
http://www.bookmaster.pl/programming,graphical,user,in...

Ja się jednak przerzuciłem na architekturę klient-serwer i .NET/Mono + konektory. Wiązałem wielkie nadzieje z tymi interfejsami graficznymi, ale w 99% zapytań ofertowych ludzie pytają o architekturę rozproszoną. Dwa razy tylko badacze poprosili o coś "lekkiego i strawnego" do wykonywania powtarzalnych operacji; i tak szybciej mi poszło napisanie apki w .NETcie, który i tak jest wbudowany w Windows od czasów Visty bodajże. No i łatwiej mi zamknać kod :)
Maciej B.

Maciej B. Doktorant

Temat: Tworzenie graficznych interfejsów w R

Może to kogoś zainteresuje: http://blog.rstudio.org/2012/11/08/introducing-shiny/

Temat: Tworzenie graficznych interfejsów w R

Super sprawa. Ale niestety, użytkownicy IE < 9 nie skorzystają, ponieważ opiera się to o websockety. Pozostaje wówczas RWeb i wsparcie AJAXem.
Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Tworzenie graficznych interfejsów w R

Adrian Olszewski:
O, bardzo fajnie, jest też w polskich księgarniach z zagraniczną literaturą, tylko że sprowadzają na zamówienie.
http://www.bookmaster.pl/programming,graphical,user,in...

Ja się jednak przerzuciłem na architekturę klient-serwer i .NET/Mono + konektory. Wiązałem wielkie nadzieje z tymi interfejsami graficznymi, ale w 99% zapytań ofertowych ludzie pytają o architekturę rozproszoną. Dwa razy tylko badacze poprosili o coś "lekkiego i strawnego" do wykonywania powtarzalnych operacji; i tak szybciej mi poszło napisanie apki w .NETcie, który i tak jest wbudowany w Windows od czasów Visty bodajże. No i łatwiej mi zamknać kod :)

Ostatnio natknąłem się na stronę pakietu 'shiny' - "Easy web applications in R" :

http://www.rstudio.com/shiny/

Temat: Tworzenie graficznych interfejsów w R

Własnie na tej stronie jest przykład, który nie działa pod IE < 9.
Michał Bojanowski

Michał Bojanowski socjolog, analityk

Temat: Tworzenie graficznych interfejsów w R

Własnie na tej stronie jest przykład, który nie działa pod IE < 9.

No tak, ale deweloperzy ostrzegają, że to będzie działać tylko w "modern www browsers" ;)
Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Tworzenie graficznych interfejsów w R

bawiłem, się tcltk napisana na szybko (bez obsługi błędów) funkcja do "interaktywnego" (to za duże słowo :) wyświetlania kolumn macierzy wygląda tak jak poniżej, czyli nieciekawie, czy trzeba korzystać z assign() ?


# zawinięty plot

fplot<-function(i,dane){
plot(dane[,i],main=paste(i))
}

i=1 # startowa kolumna
dane=iris # dane

tt <- tktoplevel()
tktitle(tt) <- "tytul np. zakres kolumn"
button.plot.PlusOne <- tkbutton(tt, text="plot.PlusOne",
command=function(){assign("i",i+1,envir=.GlobalEnv);fplot(i,dane=dane)}
)

button.plot.MinusOne<- tkbutton(tt, text="plot,MinusOne",
command=function(){assign("i",i-1,envir=.GlobalEnv);fplot(i,dane=dane)}
)

tkgrid(button.plot.MinusOne,button.plot.PlusOne) # tkgrid umożliwia umieszczenie kilku przycisków w oknie


nie wiem czy można zapisać powyższy kod bez ręcznego tworzenia nowego środowiska przechowującego 'i' lub korzystania ze środowiska globalnego, dwa przyciski muszę komunikować się poprzez jakąś zmienną

ps. denerwujące jest, że okienko z przyciskami ucieka do paska zadań i nie pozostaje na pulpiciue RGui tak jak inne oknaKamil Bęczyński edytował(a) ten post dnia 12.11.12 o godzinie 23:10
Maciej B.

Maciej B. Doktorant

Temat: Tworzenie graficznych interfejsów w R

Shiny 0.2.3:

Free and open source (AGPLv3 license)
Host multiple applications on the same port, with a different URL path per application
Allows Shiny applications to work with Internet Explorer 8 and 9
Automatically starts and stops R sessions as needed
Detects and recovers from crashed R sessions
Designed to serve applications directly to browsers, or be proxied behind another web server like Apache/Nginx
Works across network gateways and proxies that don’t support websockets

:)

i fajny przykład zastosowania:
http://glimmer.rstudio.com/psychemedia/f1ergastdemo/Maciej B. edytował(a) ten post dnia 05.12.12 o godzinie 00:08

Temat: Tworzenie graficznych interfejsów w R

Robi wrażenie i wreszcie mi teraz działa w IE 8 :)

Trzeba tylko pamiętać, że jest to licencja Affero GPL - to gdyby ktoś chciał zastosować w rozwiązaniach "closed-source".
Maciej B.

Maciej B. Doktorant

Następna dyskusja:

Tworzenie kolumn na podstaw...




Wyślij zaproszenie do