This might be an "amateur" question
Firstly, I'm used to programming in java or c++, so I am realy new to R.
What I need to do is create a program that needs the statistical abilities
of R, but needs to be used by someone that knows very little about computers.
So what im looking for is
something like JButtons for Java, only with R.
something to make a gui with and is simple to apply.
I've searched the web and R-books, but the only help thats out there is of statistic nature.
Any help on where to learn about gui, or a
library with written methods will be apreciated. the gui should be as simple as possible, no need for fancy or flexible codes. I need buttons on a page.
Check out the gWidgets package. They've got a very nice vignette, as well as a handy little system to automagically create a (editable!) gui for a particular function.
http://cran.r-project.org/web/packages/gWidgets/index.html
Related
I apologize in advance for my overall "noobness." This is my first question on stack overflow, and I am quite new to Qt, and game editor programming as well. That said, I do feel that my programming skill is not too far behind.
I've been looking for a question like this for two days, both on and off this website, and haven't found a single one. That could be because I don't know the right words to describe what I'm looking for simply.
I am beginning to build a simple game editor and engine with Qt. Please do not give the response of "Do you really want to make a game editor/engine" or "don't". I have my reasons why I am sure this is what I want to create. My question has to do with the "export to executable" or "build" feature that editors have. I've been trying to wrap my head around it, but I don't know how I would even begin to make that work. For all I know it could be one line of code, or ten-thousand.
Can someone please just point me in the right direction for what kind of programming I would need to do to make that work? If it's difficult and involves concepts I don't already know, that is actually kind of a good thing, because it means more learning for me. I just need some direction.
Thank you!
Alone "If it's difficult and involves concepts I don't already know" is enough to close this question. As if we know what you know and don't know...
Game editors are in general separated from the actual game building process that creates an executable as the final product. This is due to the overall complexity of putting all parts of the production chain into a single piece of software.
That said you can "connect" an editor to the building tools that you have to use in order to produce an executable. There are examples for this like the Unity SDK (including Unity Engine, Unity Editor etc.).
A huge exception to this general practice is Adventure Game Studio, which went open-source since not that long ago. I do believe that AGS is using .NET and C# in particular. It is almost all-in-one package including a built-in tool for generating executables from its custom language and adding the engine to it. It seems that this is what you are looking for though the complexity of such piece of software might be intimidating. If it's too much you can of course simply try to seamlessly add external building tools to your editor. Qt Creator is a nice example for this as well as probably 99% of all IDEs out there - editor simply provides the interface to interact with the building tools which are not part of it.
Last but not least you have to consider the maintenance that will be required in the future. Integrating the building infrastructure in your editor might seem like a good idea at first however what happens when you want to replace relatively large chunks of code in either your editor or this same building infrastructure, or even in both? My suggestion is to create the editor and just add an interfacing mechanism to existing building tools, which can easily be changed without ruining your editor's code or the one that represents your set of building tools.
In practice game editors do not build games to executable, they merely package game scripts and resources into a format the already implemented game executable can read. The game executable is not created by the game editor, it is implemented conventionally.
That being said, you might want to compile game scripts to native - in that case you must bundle the used compiled with the game, and invoke it from a child process to compile the script code to a shared library plugin, which you can dynamically load and use in the game engine. There is no magic here, whether it is a game or any other application, it is the same basic stuff.
In short, the game editor does not build executables - compilers do. Not unless you want, in addition to a game engine, also create your own C++ compiler too ;)
I am currently considering writing a small game. It is essentially a map where you can zoom out and in, and in certain places click on info boxes where, at some point, I hope to integrate minigames. Granted, game might be overstating it. Think of it as an interactive map. The theme is how mathematics can be applied in peoples every day life to raise awareness on the usefullness of mathematics.
The question is how I as fast as possible can make a reasonable prototype. If I recieve enough positive response on this I might try to code "the real thing" and use the prototype to obtain funding.
However, I am at a crossroad. I want something to work rather fast and have some C++ experience coding optimization problems, mainly in c-style. I am not convienced, though, that coding it in C++ is the fast way to obtain a prototype. Though I have some experience coding in C++, but have no experience in coding any sort of GUI.
As I see it there is a number of possibilites:
C++, possibly using some library, such as boost or ???.
Start out purely webbased, using e.g. HTML 5 and java.
Python
C#/.NET
Others, such as?
I have to admit I have little experience with anything besides C++ and the STL.
So my question to this wonderful forum is basically, is there a language that provides a significant advantage? Also, any additional insight or comments is more than welcome!
Python is a simpler language than C++, and for prototyping it will help you focus on the task at hand. You can use Pygame, a game library built on the excellent cross-platform SDL library. It provides 2D graphics, input, and audio mixing features. SDL is mainly a C library (and thus compatible with C++), and there are a number of very useful libraries that integrate with it:
SDL_image for loading images in various formats
SDL_ttf for rendering text using TrueType fonts
SDL_mixer for audio mixing
SDL_net for networking
SDL_gfx for graphics drawing primitives
So if you prototype in Python using Pygame, there is a reasonable chance you’ll be able to port what you make over to C++ with minimal hassle, if and when you choose to do so.
Possible options:
Go with what you know the best. Anything else will require a learning curve, which may be weeks to months long. If you're willing to take that road in order to make your prototype, then there are some really great tools available.
BlitzBasic is a good way to go, and is basically designed to be for games
I've done little games in Java using Slick2D - but you'll need good grounding in object-oriented coding to work effectively in Java. If you've got that from C++, then you can see a tech demo I built in Slick2D called Pedestrians. It's open source, and has demo videos here.
You might also ask your question on https://gamedev.stackexchange.com/ - a Q/A site dedicated to game programming
R offers a breadth and depth in statistical computing beyond what is available in commercial
closed source products. Yet R remains, primarily, a programming language for the highly
skilled statistician, and out of the reach of many. --- The R Journal Vol. ½, December 2009
Note: Name changed from Interactive R Language Online Learning Platform: CloudStat School
As stated, R is the best tool and is the lingua franca of statistics. But many people, especially my students found difficulties to use R.
I wish to make an interactive R Learning Platform, called CloudStat School.
The best way to learn R programming is doing while learning.
In CloudStat School, you will see a console box at your top left hand side, while the lesson notes at your top right. Bottom is the output box. Anything you “Run” in console box will be shown as a result in the output box.
So, while learning the notes, you can “run” the R examples immediately without open another windows, software or tabs. You can do it in a page.
I did make a simple working prototype:
Lesson 1: Overview of R Language & CloudStat School
The prototype is simply integrating R Web that hosted in Pôle Bioinformatique Lyonnais in iframe.
If many of you think that this idea great, I would start making a better version.
This is my current simple idea, hope to get some feedback from you.
Thanks a lot.
It would probably be much more resource intensive and require more effort to create, but check this out: I found Code Academy to be a fun way to tinker with JavaScript. Unfortunately the site is (so far) only for a single language and a closed-source, venture-backed startup.
The main problem is that Rweb (as I am learning right now) does execute everything in batch, so this interpreted line-by-line approach used in CA probably cannot be done with it. If you were to create a similar app to CA for R, you'd have to open an R session for every user, hence the resource intensiveness disadvantage stated above. Hope this can be overcome, maybe someone will have an idea.
Hope you find this useful, at least as an inspiration for your endeavors. I wish you the best of luck.
A couple of pointers that might help: Eloquent Javascript and CodingBat.
Eloquent Javascript is an "interactive Hyperbook" where the students can edit and try out the examples right there in HTML as they are learning Javascript. Might be worth a look to get ideas for CloudStat.
In CodingBat, Stanford professor Nick Parlante's has been doing (for Java and Python) exactly what you are attempting to do for R learners. Especially relevant is the Authoring Page.
The success of your CloudStat School will be in getting crowdsourced contributions. To that end, my suggestion is for you to create 4-5 really good exercises with levels and hints, and then to focus on the 'meta' aspect of directing others to create the R exercises for you. Provide instructions for creating hints, tests, code, and tags. You could even consider assigning the task of 'creating new exercises' as a midterm/endterm projects to your R students for extra credit.
Hope that helps and good luck.
Commonly, there are two method of R Learning, one is step-by-step, like what CloudStat School is doing, as well as other R Language books and websites. This is good especially for those (newbie) learn R without specific purpose.
Another one is learn through problems. When you face specific problems, need specific functions, you are forced to learn it. Instead of "start from zero", the better way is learning through examples. This work even for experienced R users.
Since we want to make the best Interactive R Language Online Learning Platform, we need to add as many analysis examples/study cases here. If you need to get some ideas to make a statistical analysis with R, there is a place you will visit first. :)
everybody, I'm beginner in programming, I've just finished my course on C++, I want to train my skills and try to write some programs on C++ with graphic windows (not console programs, I did it during all my course), I want to start working with QT, is it good idea, or I need to begin with something simplier, thanks in advance
Qt is, among other things, a great framework for developing applications with GUIs. The only way to know if it is appropriate is to try it out. I suggest going through this Qt tutorial, which involves creating a simple game.
To begin with Qt is an excellent idea. Qt is already simpler.
You should begin with these official tutorials: http://doc.qt.nokia.com/4.7-snapshot/tutorials.html
GUI program is a big change from a console app - the difference is that you don't know when things are going to happen and in what order.
But Qt is a very good place to start, the signal/slot mechanism is much clearer (IMHO) than the hidden macros of MFC or some other gui toolkits.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
What good IDEs are there for R in Linux?
I've tried Rcmdr and Eclipse, but neither seems to have the same usability as Tinn-R in Windows. Are there any other options?
A newcomer to the scene, which IMO looks very promising - and downright baller - relative to other existing IDEs like Rattle and JGR, is RStudio. It's free software, is cross-platform, looks very polished, and even has features like automatic refactoring.
Update 2012-04-12: I've been running it for a bit on our DB server, and I love that it's a web app that saves your sessions, resume-able from anywhere else. Plotting requires not only no X tunneling or png-writing but is easier to use than out-of-the-box R. Extremely easy to get up and running, and it comes with packages for Debian/Ubuntu (which I use).
The company/development is moving pretty fast, aiming to be the de facto standard IDE for all R users. If I'm gushing, it's probably because I was pleasantly surprised by the quality of the IDE after a long time of using sub-par IDEs, not just for R but for plenty of other languages. So this was a bit out of the blue. I still need more time to really dig into it but I like what I'm seeing so far.
JGR isn't bad:
http://rforge.net/JGR/
Most people I know rave about Emacs + ESS:
http://ess.r-project.org/
But it's not quite the same thing as Tinn-R.
Along different lines ...
If you're looking at a high level functions for data mining, then Rattle is an option:
http://rattle.togaware.com/
and another high level app for interactive plotting:
http://code.google.com/p/playwith/
I have found that the Emacs-ESS combination is well worth the learning curve. I enjoy being able to:
have code and R console side by side
send the current line, paragraph, file, or function to the R console without touching the mouse
easily interact with R sessions on remote computers
enjoy all the editing abilities of Emacs
Here's the website for the project:
http://ess.r-project.org/
Here's a helpful document about ESS in particular:
http://www.demog.berkeley.edu/Refs/ess.pdf
Brand new IDE out there (as of Feb 2011) is http://www.rstudio.org/. Seems very promising from what I've seen so far.
Although Eclipse was mentioned by the OP, I do not know if he ment it with the StatET plugin.
Eclipse with StatET is a really great IDE besides e.g. EmacsSpeaksStatistics (ESS), but as in other environments the user have to learn it's the basic usage first. The only handicap of this IDE could be the relatively high resources requirements as based on Java, but this makes the program OS independent of course.
Why I really would suggest to take the time to learn use StatET efficiently (cauction: very subjective list!):
be able to run your code really fast and easily with comfigurable shortcuts (by Ctrl+r by default),
thanks to the script editor and running environment is heavily integrated, debuging and reviewing your code cannot be easier,
configurabled environments by default (e.g.: R scripts),
you may define templates for frequent commands and those's environment (e.g.: loop, if conditions etc),
highly customizable syntax highlight,
TeXlipse integrated to view and edit tex code with ease (LaTeX support for Eclipse),
Roxygen support for literate programming (very handy at package development to automatically generate Rd files (manuals) from inline comments),
easily extendable with othet Eclipse plugins (e.g.: spell checking, (SQL) database management, image viewer, running external programs like Sweave).
A nice guide to read is A Guide to Eclipse and the R plug-in StatET by Longhow Lam.
Gedit + RGedit plugin + Snippets plugin
You've suggested eclipse; there is a plugin called StatEt which work quite well (even Sweave is supported!).
There is a KDE 4 based IDE called RKward. It's nice because of:
Workspace Browser
Integrating the R console
data.frames editor
Syntax colored editor
GUI frontend for installing CRAN packages
For my case, I would recommend RKward for linux, it is a KDE. I've been using RStudio in Windows, but when I switched to Ubuntu, I find RKward easy to use, and has a good interface.
You can create a data frame without coding it with data.frame() function.
If you are used to Eclipse, StatET (mentioned by mbq) is probably the right choice for you.
That being said I have a more exotic choice to offer that you might want to consider, if you like auto suggestion and pure syntax highlighting is not enough for you. At least for me auto completion of R-Code did not work with StatET.
Now I use Komodo Edit with Sciviews-K and R64. Sending Code from editor to R works really well and the editor offers auto-completion for R-Code which is really nice – in particular if you are new to R. I work on a Mac, but it should be easy to setup for Linux too.
I think it has lost some popularity because it wasn't to stable in the past, but at I feel it's much better now and it hardly crashes in my setup. So you might wanna give it a chance too.
EDIT: If you work on Mac Textmate with the corresponding R bundle might be interesting, too. Recently I am about to switch to Textmate. If you don't care about the $45 for textmate, it's probably the most stable choice I tested so far. But it's only available on a Mac. But hey I am really amazed by this editor (and as you can see I like testing setups ;).
EDIT: I realize this thread is still being read by someone, so I definitely need to mention RStudio. It came out of nowhere and quickly became the choice of a lot of people. And it's well deserved. It still has some bugs (like not being able to stop RSessions) but it has tremendous auto-complete with context help. But at least on my setup (Mac) it's more stable than StatET / Eclipse. Sweave and ROxygen is not really supported yet, but the developers are very active. Definitely worth trying.
EDIT II: Because it's fun to track this here's another edit. RStudio continues to win more and more users. The combination of RStudio, Roxygen2 and particularly knitr integration has likely been the largest contribution to this development. While Rstudio was rather used by applied users and in teaching and has improved to dramatically that there's isn't many situations in which another IDE / editor is a better choice. Being maried to ESS seems like to only valid reason left to not use it. Also the documentation of its ecosystem is just great. The latest: Package development by Hadley http://r-pkgs.had.co.nz/description.html and his advanced programming http://adv-r.had.co.nz/
I strongly recommend learning emacs+ess, but for a more modern-looking interface you can try RKward: http://sourceforge.net/apps/mediawiki/rkward/index.php?title=Main_Page.
I use Geany in combination with R. Geany provides a terminal in which one can start an R session and shortcuts an be defined in order to send highlighted text to the terminal.
www.geany.org
RGedit, great tool if you're keen on GNOME default text editor. Lacks autocompletion in script mode, though... but you can define snippets in a separate plugin (Snippets)... You can send code directly to R session running in the terminal window, tabbed multiple R sesions, there are several GUI templates for common data analysis (t-test, correlation), long story short, take a look at:
http://sourceforge.net/projects/rgedit/
Few months ago (when I gave my blogging skills a try), I wrote a review for RGedit, here's a link (and a little bit of self-advertising):
http://psy-stat.com/?p=12
EDIT:
Oh, and you can use Geany and set it up so you can send code chunks to R session... I've never done it, but I know it's manageable!
EDIT #2:
here's a helpful link: http://sgsong.blogspot.com/2010/08/integrating-r-with-geany.html
This might be what you're looking for. It integrated Komodo and the SciViews package. I found it a bit too fiddley (I prefer vi) but if you're looking for a full blown IDE/editor for R in Linux it's pretty close to Tinn-R for Windows and it's written by the same guys!
Link:
http://www.sciviews.org/SciViews-K/index.html
Rattle: http://rattle.togaware.com/
Emacs with ESS. Probably not as polished as Eclipse, but I do like it.
Personnaly, I use gedit and my console. It works great :)