R 0.64.1 for Windows 9x and NT ============================== This distribution contains a binary distribution of R-0.64.1 to run on Windows 95, 98 and NT4 (at least) on Intel/clone chips. It is designed to be as close as possible to the implementation on Unix, but see the list of differences below. The port was by Guido Masarotto with many important contributions by Brian Ripley (including almost all the updating from 0.63.x to 0.64.x). See Announce or CHANGES for the new features of this version. Installation ============ Unpack rw0641b.zip anywhere you like. It will unpack to a directory tree under rw0641. The help, HTML and latex help files are in separate files rw0641h.zip, rw0641w.zip and rw0641l.zip which should be unpacked in the same directory you unpacked rw0641b.zip. The source-change file rw0641s.zip is unpacked inside rw0641. An executable of INFO-ZIP's unzip is supplied with this distribution. If you already have a copy installed you may if you wish delete the RHOME\unzip directory and edit RHOME\etc\Rprofile to set options(unzip="unzip.exe") Usage ===== There are two executables in rw0641\bin: GUI: Rgui.exe runs as a standard Windows GUI executable and provides an R console in its own window. It takes the standard R command-line arguments; these are most easily set by making a shortcut to ...\rw0641\bin\rgui.exe and adding the arguments in the Target field. Set the `Start in' field of the shortcut to the directory you want to use as the working directory (where workspaces and files are saved and loaded from). Command-line editing is available: see Help | Console for details. The menus provide shortcuts to some R commands such as help, help.start, apropos, ls, load, save.image, search. The `load' menu items (Source R code, Load image) keep track of the directory that was last used, and start their dialog boxes from that directory the next time they are used. That directory can be made the working directory by the File | Change dir menu item. All the `save' menu items start dialog boxes at the current working directory: this includes Save image and the various ways to save graphics, as well as saving the workspace at the end of the session. Observe that the help files use the latin1 encoding. To see all the characters you must use an appropriate font (European-language True Type fonts should be OK). To check if your preferred font has latin1 capability, try "help(text)" and look at the examples. [Note: only a couple of files make use of latin1 characters not contained in the standard ASCII set so if you like a font without latin1 capability, use it.] TERMINAL/BATCH: Rterm.exe will run from a command line such as an MS-DOS or Commands Window running the standard shells, command.com (9x) and cmd.exe (NT), as well as the ports of bash and tcsh that we use. Its primary purpose is to allow batch operation, but it does provide all the facilities needed for interactive use, including simple command-line editing. (If you type too fast you the command-line editor will miss keystrokes). Batch use: At it simplest, rterm.exe can be used in a batch mode by commands like Rterm.exe --vsize 6M --nsize 250k --no-restore --no-save < infile > outfile although users will probably want to set up simple .bat or .cmd files to run batch jobs. Use with ESS-5.0: You can use Rterm.exe to provide inferior R-mode in ESS-5.0 mode under NTEmacs. The only change needed is to add the starting argument --ess to essd-r.el at the line (inferior-ess-start-args . "--ess")) You can also try the ESS-5.1.x betas. GRAPHICS: The screen device is called x11, even though it runs under Windows. This is launched automatically, and can also be launched explicitly by windows(), X11(), x11() or win.graph() from both Rgui.exe and Rterm.exe. A printer device can be opened using win.print(), and graphs drawn as metafiles by win.metafile(). The graphics device pops up an independent window which has two menus. The File menu allows saving or printing or to run dev.off(). The History menu allows the recording of plots. When plots have been recorded they can be reviewed by PgUp and PgDn, saved and replaced. Recording can be turned on automatically (the Recording item on the list) or individual plots can be added (Add or the INS key). The whole plot history can be saved to or retrieved from an R variable in the global environment. There is only one graphics history shared by all the windows devices. Customization ============= Environment variables can be set as NAME=value on the command line, including in a short-cut. They can also be set (as NAME=value lines) in the file HOME\.Renviron, if this exists. Many aspects of the console (size, appearance, font, colours) can be customized by editing the file etc\Rconsole, and a copy with a user's settings can be put in her HOME directory or in the working directory. (The exact sequence is to search the directories pointed to by the environment variables R_HOME then HOME then the working directory, finally RHOME\etc.) The file contains a description of the settings that can be altered. See also ?Rconsole. The mapping between Windows fonts and R font's number can be set by editing the file etc\Rdevga, and a copy with a user's settings can be put in the HOME or working directory (see the description of Rconsole). This mapping applies to both the screen device and the printer device. Many R defaults can be set in the file RHOME\etc\Rprofile or a user's file .Rprofile. In particular: - The pager is set by options(pager=). The default is "internal" which brings up a separate console-like window. The internal pager can use a single window or a different window for each topic shown (option configurable in etc\Rconsole). Other possibilities we have used are "notepad" and "pfe32 /v". - The location of the unzip program is set by options(unzip=). If you have unzip installed on your system you can set this to the path to unzip (or just options(unzip="unzip.exe") if this is on your path), and delete the RHOME\unzip directory. - If you wish to use HTML help where this is available, set options(htmlhelp=T). If you prefer to use Windows help files where these available, set options(winhelp=T). Adding packages =============== Binaries for many packages are available at CRAN/bin/windows/windows-NT/contrib. These are zip files which should be unpacked in rw0641\library. They are then available for use. The list of packages and functions given by HTML help and used by the search engine can be updated from a running R process by the command link.html.help() provided the owner of the process has write permission on rw0641\doc\html. If you have the source-package files and Perl installed you can use cd ...\rw0641\src\gnuwin32\help make indices Private libraries of packages can be used and can be specified by the environment variable RLIBS. (Separate directories by ";" in this version.) They will not be linked to HTML help. In more detail, to use packages installed in directory R:\libraries\gm set RLIBS=R:\libraries\gm in the environment or on the command line, or add the line .lib.loc <- c("R:/libraries/gm", .lib.loc) to your .Rprofile or at the end of RHOME/etc/Rprofile. To install a package from source code you need the source-package distribution rw0641sp.zip installed (but not the R source). This contains detailed instructions. Differences from Unix ===================== - R can be interrupted by Esc in Rgui and by Ctrl-Break in Rterm: Ctrl-C is used for copying in the GUI version. - Command-line editing is always available, but is much simpler than under readline-based input on Unix. - The commands history is saved between sessions only by Rgui. - The HTML function and package lists and search datasbase are not re-generated automatically by html.start(). Use link.html.help(). - Paths to files can be specified with "/" or "\\". - Using help.start() does not automatically send help requests to the browser(): use options(htmlhelp=T) to turn this on. - Graphics save and replay only here. - system is enhanced here and does not automatically use a shell. See its help page and that of shell. Building From Source ==================== First collect the tools that you need. Building on Windows ------------------- EITHER The cygwin-B20.x set of tools available from http://sourceware.cygnus.com/cygwin and several mirrors, the Fortran additions ecgs-1.1-f77.tar.gz from that page or directly from http://www.xraylith.wisc.edu/~khan/software/gnu-win32/ and the Fortran library libg2c.mingw32.a.bz2 from CRAN/bin/windows/windows-NT/etc. Do remember to set MAKE_MODE to UNIX. OR The mingw32 port of egcs-1.1 (or 1.1.2) from ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/egcs-1.1/, the ld.exe and cygwin1.dll from the B20 set in your path ahead of the mingw32 binaries (if you don't want to download all the B20 distribution, you can find the two files in CRAN/bin/windows/windows-NT/etc/ld.cygwin.zip). Suitable versions of rm, sed, mkdir, echo, cp and cat, for example (Win 9x) from the djtools set at CRAN/bin/windows/windows-NT/etc or (Win 9x or NT) a cygwin set. perl5, available via http://www.perl.com/CPAN/ports. groff, available at http://www.itribe.net/virtunix/groff-1.10nt.zip. All of these need to be installed and in your path, and the appropriate environment variables set. You also need: the R source (R-0.64.1.tgz). Then: untar R-0.64.1.tgz somewhere (ignore warnings about the aux directory), cd /somewhere/R-0.64.0/src/gnuwin32 edit MkRules to set the appropriate paths as needed and run make BUILD=EGCS or CYGWIN Note: the file rw0641\unzip\unzip.exe is not in the source distribution, nor are the sources (it the standard Info-Zip unzip 5.40). You will need to copy it from a binary distribution. Cross-building on Linux ----------------------- You will need i386-mingw32 cross-compilers installed: see http://www.xraylith.wisc.edu/~khan/software/gnu-win32/mingw-cross-howto.txt and ensure that these are in your path. You also need Perl and nroff. You also need: the R source (R-0.64.0.tgz) and rw0641s.zip. Then: untar R-0.64.0.tgz somewhere unzip -a rw0641s.zip in /somewhere/R-0.64.0, cd /somewhere/R-0.64.0/src/gnuwin32 Edit MkRules to set BUILD=CROSS and the appropriate paths as needed. Set TEMP to , say, /tmp, and make. Packages can be made in the same way as natively: see the file readme.packages. Feedback ======== Please send comments and bug reports to Guido Masarotto and comments on the documentation and help system (but not its contents) to Brian Ripley