Re: [Rd] Mentor for GSOC '10: Symbolic Regression in R

2010-03-04 Thread Chidambaram Annamalai
Thank you for your comments. I was indeed looking to use Rcpp for
integration for the C++ portions where compiled code would have performance
benefits while sticking to R code elsewhere.

I've had some previous bad experiences with Swig for interfacing C code with
Python code but it looks like Rcpp is much more friendlier.

And thanks for the support!

Chillu

On Thu, Mar 4, 2010 at 1:18 PM, Romain Francois rom...@r-enthusiasts.comwrote:

 Hello,

 I can't offer to mentor because I don't know anything about symbolic
 regression.

 However, since you have R/C++ as the skills requirements, I would strongly
 recommend that you use Rcpp as an enabling technology, so that you can be
 productive on C++/symbolic regressions as opposed to manage R API quirks.

 Also, you can count on some implicit support through Rcpp mailing list.
 https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

 Good luck finding a mentor, this sounds like a cool project.

 Romain


 On 03/03/2010 08:17 PM, Chidambaram Annamalai wrote:


 Hi all,

 I am looking to extend the regression and data analysis capabilities of R
 through Symbolic Regression that can potentially find implicit equation
 relationships in the input data. You can find my project proposal at:
 http://rwiki.sciviews.org/doku.php?id=developers:projects:gsoc2010:syrfr

 I am looking for a mentor to guide me through the summer on the project
 under the Google Summer Of Code program (GSOC 2010) with relevant
 experience
 in Symbolic Regression or Genetic Programming in general.


 Chillu



 --
 Romain Francois
 Professional R Enthusiast
 +33(0) 6 28 91 30 30
 http://romainfrancois.blog.free.fr
 |- http://tr.im/OIXN : raster images and RImageJ
 |- http://tr.im/OcQe : Rcpp 0.7.7
 `- http://tr.im/O1wO : highlight 0.1-5



[[alternative HTML version deleted]]

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] dots for sample -- implicitGeneric

2010-03-04 Thread Martin Maechler
 CB == Claudia Beleites cbelei...@units.it
 on Sun, 28 Feb 2010 19:31:42 +0100 writes:

CB Dear R-Developers,
CB could 'sample' gain a ... argument?

As you may know, adding '...' also has drawbacks,
most notably that you lose automatic checking of correctly
specified argument names (when the function is called).

OTOH, R has now (since 2.9.0)  had sample.int() as a fast and robust
alternative.

CB As a convenience function, I added a sample Method to my hyperSpec 
CB class. This function however has a flag indicating whether the results 
CB should be returned directly as a hyperSpec object or rather as indices 
CB that give a random sample.

CB For the moment, I use SetGeneric to add the dots argument, but this of 
CB course gives a warning that the base function sample is overwritten 
(and 
CB my colleagues are almost as scared of warnings as of errors...)

and they are not the only ones ... 

For a while now, we have (in 'methods') the possibility to make
functions implicit generic,  see  ?implicitGeneric ,
exactly for purposes like (I think)  you have here
( and notably to ensure that if *different* packages do this,
  they get compatible versions of the generic,
  and hence all the different method definitions will be
  attached to the same generic )

Namely, you'd want to define S4 methods (and hence make 'sample' an S4 generic)
with new arguments in your package.

So, yes, I now have added 'sample' to the list of functions
that we make implicitGeneric in R.
-- Get a version of R-devel, (svn revision = 51202)
and try the following:

 setClass(foo, contains=vector)
[1] foo

 setMethod(sample, foo, function(x, size, myArg, ...) 
 sprintf(sample(foo, myArg=%s)\n,myArg))
Restoring the implicit generic function for ‘sample’ from package ‘base’
into package ‘.GlobalEnv’; the generic differs from the default conversion 
(Formal arguments differ: (x, size, replace, prob), (x, size, replace, prob, 
...))
Creating a new generic function for sample in .GlobalEnv
[1] sample

 sample(new(foo), myArg = 64)
[1] sample(foo, myArg=64)\n


Best regards,
Martin Maechler, ETH Zurich


CB Thanks,
CB Claudia

CB -- 
CB Claudia Beleites
CB Dipartimento dei Materiali e delle Risorse Naturali
CB Università degli Studi di Trieste
CB Via Valerio 2
CB I-34127 Trieste
CB ITALY

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] R CMD check data reading

2010-03-04 Thread Dario Strbenac
Hello,

I have a test script that works fine when I copy and paste it into a R session. 
I have the script in the tests directory of the package. But when I do R CMD 
check on the package it runs all the tests OK on my first dataset in the 
script, then I make a call to load() for the second dataset, and it gives

  Error in readChar(con, 5L, useBytes = TRUE) : cannot open the connection
  Calls: load - load.default - readChar
  Execution halted

At least I think that's where it is happening. None of my cat() statements in 
the script go to the screen, so it's only a guess based on the Calls: in the 
above message.

How could the script work when copied and pasted into a session, but fail under 
R CMD check ? I'm out of ideas on this one.

-
Dario Strbenac
Research Assistant
Cancer Epigenetics
Garvan Institute of Medical Research
Darlinghurst NSW 2010
Australia

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] (PR#14226) -- Re: libgfortran misplaced in Mac OS X R install (PR#14226)

2010-03-04 Thread Michael Spiegel
I am the guy who compiles the OpenMx binaries.  We would be delighted
to place our package on CRAN, once the project is stable enough so
that we are comfortable releasing it to the larger public.  Let's try
to track down where I made a mistake.  Our Makevars.in file contains
the line:

PKG_LIBS=$(FLIBS) $(BLAS_LIBS) $(LAPACK_LIBS)

In addition, on the build machine I noticed that a copy of
libgfortran.2.dylib exists at /usr/local/lib.  I believe the Xcode
install placed a copy of it there.  To create the binary release, I
run  R CMD INSTALL --build.  The beta test users install the package
using the following script:
http://openmx.psyc.virginia.edu/getOpenMx.R.


On Wed, Mar 3, 2010 at 9:48 AM, Tim Brick tbr...@virginia.edu wrote:


 From: Simon Urbanek simon.urba...@r-project.org
 Date: March 3, 2010 8:32:52 AM MST
 To: tbr...@virginia.edu
 Cc: r-de...@stat.math.ethz.ch, r-b...@r-project.org
 Subject: Re: [Rd] libgfortran misplaced in Mac OS X R install (PR#14226)

 This is not an R bug so please don't abuse R-bugs. It is likely a bug in the 
 way OpenMx binaries are distributed by someone (you didn't even say where 
 you got them from) - OpenMx is not even on CRAN so take that to whoever gave 
 you the binaries. On CRAN we use the correct paths.

 Cheers,
 Simon


 On Mar 2, 2010, at 11:45 , tbr...@virginia.edu wrote:

 Full_Name: Timothy Brick
 Version: 2.10
 OS: Mac OS X (seen on both 10.6 and 10.5)
 Submission from: (NULL) (63.255.24.5)


 When using install.packages in R on Mac OS X, packages that require gfortran
 throws an error (Example below from installation of OpenMx package):

 Loading required package: OpenMx
 Error in dyn.load(file, DLLpath = DLLpath, ...) :
 unable to load shared library
 '/Library/Frameworks/R.framework/Resources/library/OpenMx/libs/i386/OpenMx.so':
 dlopen(/Library/Frameworks/R.framework/Resources/library/OpenMx/libs/i386/OpenMx.so,
 6): Library not loaded: /usr/local/lib/libgfortran.2.dylib
 Referenced from: 
 /Library/Frameworks/R.framework/Resources/library/OpenMx/libs/i386/OpenMx.so
 Reason: image not found

 libgfortran.2.dylib does exist, but in
 /Library/Frameworks/R.framework/Versions/2.10/Resouces/lib/libgfortran.2.dylib
 (or /2.9/, depending on version installed).

 A workaround at present involves creating a symbolic link from the above 
 file to
 /usr/local/lib/libgfortran.2.dylib, however this requires sudo access and is
 confusing for novice users.

 There is more discussion of this bug as it relates to OpenMx at:
 http://openmx.psyc.virginia.edu/thread/316

 Posts on other forums indicate a similar issue with other packages including
 vegan and lme4:
 http://r-forge.r-project.org/forum/forum.php?thread_id=728forum_id=194
 https://stat.ethz.ch/pipermail/r-sig-mac/2009-May/006210.html


 Those are very old posts and those were temporary issues in the CRAN build 
 system that have been promptly resolved.





__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] (PR#14226) -- Re: libgfortran misplaced in Mac OS X R install (PR#14226)

2010-03-04 Thread Simon Urbanek

Hi Michael,

On Mar 3, 2010, at 12:01 , Michael Spiegel wrote:

I am the guy who compiles the OpenMx binaries.  We would be  
delighted to place our package on CRAN, once the project is stable  
enough so that we are comfortable releasing it to the larger  
public.  Let's try to track down where I made a mistake.  Our  
Makevars.in file contains the line:


PKG_LIBS=$(FLIBS) $(BLAS_LIBS) $(LAPACK_LIBS)

In addition, on the build machine I noticed that a copy of  
libgfortran.2.dylib exists at /usr/local/lib.  I believe the Xcode  
install placed a copy of it there.


No, it is part of the GNU Fortran installation. Anything you compile  
with a Fortran requires that you have that Fortran installed at run  
time, because Fortran uses its own run-time libraries (if the Fortran  
you compiled with used dynamic libraries). This implies that if you  
distribute your package you have to tell users to install the same  
Fortran you used to compile it.


However, unlike other unices Mac users don't necessarily have  
development tools installed, so on CRAN we make an effort to modify  
the binaries such that they work even without the tools they have been  
compiled with. There are several possible approaches, but since R  
itself already uses the same Fortran, we ship a copy of the Fortran  
libraries inside R and modify packages such that they use it instead  
of the one from dev tools (see below for details).




 To create the binary release, I run  R CMD INSTALL --build.


That is not sufficient to create a binary of your package, because it  
contains a configure script (this is unrelated to the above - see R- 
admin 2.6). What you want to use is something like this (assuming R  
2.10.1 Leopard build and Fortran from CRAN):


R --arch=i386 CMD INSTALL OpenMx_0.2.9-1147.tar.gz
R --arch=x86_64 CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
R --arch=ppc CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
cd /Library/Frameworks/R.framework/Versions/2.10/Resources/library

# fix the Fortran paths to point to R 2.10 instead
for lib in `ls OpenMx/libs/*/*.so`; do
  install_name_tool -change /usr/local/lib/libgfortran.2.dylib \
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libgfortran.2.dylib \

   $lib
done

# change permissions for distribution
sudo chown -Rh root:admin OpenMx
sudo chmod -R g+w OpenMx

# pack it up
tar fvcz ~/OpenMx_0.2.9-1147.tgz OpenMx


You can check that you have the correct paths using otool -L:

ginaz:library$ otool -L OpenMx/libs/*/*.so
OpenMx/libs/i386/OpenMx.so:
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRlapack.dylib (compatibility version 2.10.0, current version 2.10.1)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libR.dylib (compatibility version 2.10.0, current version 2.10.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/ 
CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current  
version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current  
version 111.1.4)
	/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib  
(compatibility version 1.0.0, current version 242.0.0)

OpenMx/libs/ppc/OpenMx.so:
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRlapack.dylib (compatibility version 2.10.0, current version 2.10.1)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libR.dylib (compatibility version 2.10.0, current version 2.10.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/ 
CoreFoundation (compatibility version 150.0.0, current version 476.19.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current  
version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current  
version 111.1.4)
	/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib  
(compatibility version 1.0.0, current version 242.0.0)

OpenMx/libs/x86_64/OpenMx.so:
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libgfortran.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
	

Re: [Rd] dots for sample -- implicitGeneric

2010-03-04 Thread Claudia Beleites

Dear Martin,

Martin Maechler wrote:

CB == Claudia Beleites cbelei...@units.it
on Sun, 28 Feb 2010 19:31:42 +0100 writes:


CB Dear R-Developers,
CB could 'sample' gain a ... argument?

As you may know, adding '...' also has drawbacks,
most notably that you lose automatic checking of correctly
specified argument names (when the function is called).
Yes, I'm aware of that - and was silently wondering whether one could do 
something against it (besides having nicely behaved functions without ... at the 
end of the call chain).




OTOH, R has now (since 2.9.0)  had sample.int() as a fast and robust
alternative.

Yes.
I had a quick thought whether I should do
sample (my.object) = new object with a subset of my.object's spectra
and
sample.int (my.object) = indices for use with my.object
I decided that this is bad, as I would expect that a function somefun.int does 
*expect* rather than *return* the integer.


The other thought was to have an additional function
isample that returns indices. Which after rethinking seems the right thing to 
do.

However this doesn't solve the implicitGeneric problem: if the object is 
returned I'd like to allow users to pass short messages that end up in the 
object's logbook.
But this can easily be postponed until R 2.11 is released and sample has the 
implicit generic also for normal users (= my colleagues who already complain 
if I ask them to update their R to the official release).




CB As a convenience function, I added a sample Method to my hyperSpec 
CB class. This function however has a flag indicating whether the results 
CB should be returned directly as a hyperSpec object or rather as indices 
CB that give a random sample.


CB For the moment, I use SetGeneric to add the dots argument, but this of 
CB course gives a warning that the base function sample is overwritten (and 
CB my colleagues are almost as scared of warnings as of errors...)


and they are not the only ones ... 


For a while now, we have (in 'methods') the possibility to make
functions implicit generic,  see  ?implicitGeneric ,
exactly for purposes like (I think)  you have here
( and notably to ensure that if *different* packages do this,
  they get compatible versions of the generic,
  and hence all the different method definitions will be
  attached to the same generic )


Yes, thank you - that's what I really wanted!
I'll do my homework and reread the chaper in Chambers' book.


Namely, you'd want to define S4 methods (and hence make 'sample' an S4 generic)
with new arguments in your package.

Exactly.


So, yes, I now have added 'sample' to the list of functions
that we make implicitGeneric in R.

Thanks a lot.


-- Get a version of R-devel, (svn revision = 51202)
and try the following:


setClass(foo, contains=vector)

[1] foo


setMethod(sample, foo, function(x, size, myArg, ...) sprintf(sample(foo, 
myArg=%s)\n,myArg))

Restoring the implicit generic function for ‘sample’ from package ‘base’
into package ‘.GlobalEnv’; the generic differs from the default conversion 
(Formal arguments differ: (x, size, replace, prob), (x, size, replace, prob, 
...))
Creating a new generic function for sample in .GlobalEnv
[1] sample


sample(new(foo), myArg = 64)

[1] sample(foo, myArg=64)\n

Wonderful. Works like a charm. Thanks a lot.

Thanks for your kind help,

Claudia






Best regards,
Martin Maechler, ETH Zurich


CB Thanks,
CB Claudia

CB -- 
CB Claudia Beleites

CB Dipartimento dei Materiali e delle Risorse Naturali
CB Università degli Studi di Trieste
CB Via Valerio 2
CB I-34127 Trieste
CB ITALY

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel



--
Claudia Beleites
Dipartimento dei Materiali e delle Risorse Naturali
Università degli Studi di Trieste
Via Alfonso Valerio 6/a
I-34127 Trieste

phone: +39 0 40 5 58-37 68
email: cbelei...@units.it

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Rmpi on CentOS (64bit)

2010-03-04 Thread Marc Schwartz

On Mar 4, 2010, at 1:24 AM, Patrick Connolly wrote:

 On Wed, 03-Mar-2010 at 01:46PM -0600, Marc Schwartz wrote:
 
 
 | Patrick, just as an FYI, I did not see which variant of CentOS you
 | are using, but:
 
 Apologies.  I didn't mention it's 5.4

No problem.

 
 | CentOS 4, which is based upon RHEL 4, is in turn based upon Fedora
 | Core 3 (2004).
 
 | CentOS 5, which is based upon RHEL 5, is in turn based upon Fedora
 | Core 6 (2006).
 
 | So to reinforce, there is a substantial and intentional lag between
 | RHEL/CentOS and Fedora. Recall that RHEL and CentOS are targeted
 | for stable server use, whereas Fedora is a bleeding edge distro.
 
 Yes.  For that reason, I wished to get Rmpi working on CentOS.  I use
 Fedora 11 at home and I'm a bit put off by the 300-500 Mb of updates
 most weeks.  It's nice using the new stuff, but those updates
 periodically screw up what had been working well.  I wouldn't want
 that on a production machine.  Looks as though I'll have to do so
 anyway.  My Linux skills aren't up to sorting out this CentOS lot, and
 I should at least get it started: it's likely there's not much
 difference between F11 and F12 for this task.
 
 This could well be a case where Debian would be the easiest way to go,
 but I couldn't convince the IT people to go down such a new track.
 Ours is very much an rpm site.  In any case, my only Debian-type
 experience is with Mepis (where I got Rmpi working in 20 minutes, but
 I don't think that makes me a Debian pro).
 
 Thanks for the hints.


BTW, just as happenstance this morning, I found the following blog posting, 
that may or may not be of help to you for Rmpi on Fedora:

  http://www.r-bloggers.com/r-tips-installing-rmpi-on-fedora-linux/

Notwithstanding the IT people issues, you could perhaps consider Ubuntu LTS, 
which provides a hybrid-ish approach of having a fairly up to date desktop 
Linux distro with longer term post-release support. Moving to a Debian based 
distro of course also avails you of the significant work that folks like Dirk 
have put in place to make most CRAN packages easily available via apt.

There was a similar hybrid attempt for Fedora a few years ago, called Fedora 
Legacy, but it was effectively DOA. There were folks who wanted and argued for 
longer post release support, to avoid the frequent release update cycle. Not 
surprisingly, with the exception of a core group, the majority of those who 
wanted it were not willing to provide the substantial voluntary resources to 
actually make it successful. Not to mention, it was anathema to Fedora's raison 
d'etre and there were heated discussions on the Fedora lists.

F13 is scheduled for release mid-May, which means that F11 goes EOL mid-June. 
So you will need to think about moving any F11 based systems to F12 or F13 in 
the not too distant future. That's the challenge of Fedora's life cycle, with 
twice per year major releases, so one has to make an informed decision as to 
the willingness to be on a fast track. It is one of the reasons that I moved to 
OSX a year ago, after 8 years on RH/Fedora, along with growing frustration over 
the poor nature of Linux hardware support from the GPU vendors (especially 
nVidia) at the time. As they say, the only good thing about banging your head 
against the wall, is that it feels so good when you stop.

To contrast, RHEL has a 7 year life cycle, which of course carries over to 
CentOS, again reflecting server versus desktop requirements. You can see more 
information here:

  http://www.redhat.com/security/updates/errata/

So each RHEL/CentOS major release lives during roughly 14 Fedora major releases.

There are also various rumors and speculations about RHEL 6, its release date 
and which version of Fedora it will be based upon, with some suggesting F12 or 
F13:

  http://lwn.net/Articles/364405/

  http://jason.roysdon.net/2010/01/29/red-hat-enterprise-linux-6-speculation/


HTH,

Marc

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Tom Short
Is the bug-reporting system working okay? Two days ago, I submitted
the following bug report via email to r-b...@r-project.org. I didn't
see a confirmation, and it didn't see it at
http://bugs.r-project.org/. Now, http://bugs.r-project.org/ seems to
be down.

Anyway, here's the bug report related to sort.list and sort(...,
index.return = TRUE) with na.last = NA


I think that both sort.list(x, na.last = NA) and sort(x, na.last = NA,
index.return = TRUE)$ix give incorrect answers with na.last. With
na.last, both of these return answers equivalent to
sort.list(na.omit(x)), and I think they should be the equivalent of
order(x, na.last=NA) as follows.

 x - c(1L, 6L, NA, 2L)
 order(x, na.last = NA) # right
[1] 1 4 2
 sort.list(x, na.last = NA, method = radix) # wrong, I think
[1] 1 3 2
 sort.list(x, na.last = NA, method = quick) # wrong
[1] 1 3 2
 sort(x, na.last = NA, index.return = TRUE)$ix # wrong
[1] 1 3 2

I've included a patch for the radix and shell methods of
sort.list. The sort and quick method of sort.list (which uses sort)
look more challenging. With the patch, I get:

 sort.list(x, na.last = NA, method = radix) # good
[1] 1 4 2
 sort.list(x, na.last = NA, method = shell) # good
[1] 1 4 2
 sort.list(x, na.last = NA, method = quick) # still bad
[1] 1 3 2

By the way, having the radix sort is great. It's really fast for factors.

- Tom

Tom Short
Electric Power Research Institute (EPRI)



 sessionInfo()
R version 2.10.1 (2009-12-14)
i386-pc-mingw32

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats graphics  grDevices utils datasets  methods   base
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Marc Schwartz
On Mar 4, 2010, at 9:29 AM, Tom Short wrote:

 Is the bug-reporting system working okay? Two days ago, I submitted
 the following bug report via email to r-b...@r-project.org. I didn't
 see a confirmation, and it didn't see it at
 http://bugs.r-project.org/. Now, http://bugs.r-project.org/ seems to
 be down.
 
 Anyway, here's the bug report related to sort.list and sort(...,
 index.return = TRUE) with na.last = NA
 
 
 I think that both sort.list(x, na.last = NA) and sort(x, na.last = NA,
 index.return = TRUE)$ix give incorrect answers with na.last. With
 na.last, both of these return answers equivalent to
 sort.list(na.omit(x)), and I think they should be the equivalent of
 order(x, na.last=NA) as follows.
 
 x - c(1L, 6L, NA, 2L)
 order(x, na.last = NA) # right
 [1] 1 4 2
 sort.list(x, na.last = NA, method = radix) # wrong, I think
 [1] 1 3 2
 sort.list(x, na.last = NA, method = quick) # wrong
 [1] 1 3 2
 sort(x, na.last = NA, index.return = TRUE)$ix # wrong
 [1] 1 3 2
 
 I've included a patch for the radix and shell methods of
 sort.list. The sort and quick method of sort.list (which uses sort)
 look more challenging. With the patch, I get:
 
 sort.list(x, na.last = NA, method = radix) # good
 [1] 1 4 2
 sort.list(x, na.last = NA, method = shell) # good
 [1] 1 4 2
 sort.list(x, na.last = NA, method = quick) # still bad
 [1] 1 3 2
 
 By the way, having the radix sort is great. It's really fast for factors.
 
 - Tom
 
 Tom Short
 Electric Power Research Institute (EPRI)
 
 
 
 sessionInfo()
 R version 2.10.1 (2009-12-14)
 i386-pc-mingw32
 
 locale:
 [1] LC_COLLATE=English_United States.1252
 [2] LC_CTYPE=English_United States.1252
 [3] LC_MONETARY=English_United States.1252
 [4] LC_NUMERIC=C
 [5] LC_TIME=English_United States.1252
 
 attached base packages:
 [1] stats graphics  grDevices utils datasets  methods   base


Tom, 

See this recent follow up posting from Peter:

  http://tolstoy.newcastle.edu.au/R/e9/devel/10/02/0375.html

There has been talk over the years of moving to Bugzilla, but I am not clear on 
present status.

Perhaps the link on the main R Project page needs to be removed or better, 
updated to a link with a status update on the R bug reporting process. Of 
course, that does not help folks using bug.report(), which presumably needs to 
be updated as well.

HTH,

Marc Schwartz

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Jens Elkner
On Thu, Mar 04, 2010 at 09:39:41AM -0600, Marc Schwartz wrote:
  
 There has been talk over the years of moving to Bugzilla, but I am not clear 
 on present status.

IMHO Bugzilla is too challenging for normal users/human beeings (even
developers are often not able to extract the info they need). So JIRA
(http://www.atlassian.com/software/jira/) might be a much better choice -
usually it is not a problem to ask for and get a license for free for
OpenSource projects ...

Regards,
jel.
-- 
Otto-von-Guericke University http://www.cs.uni-magdeburg.de/
Department of Computer Science   Geb. 29 R 027, Universitaetsplatz 2
39106 Magdeburg, Germany Tel: +49 391 67 12768

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] R logo as SVG ?

2010-03-04 Thread Jens Elkner
On Wed, Mar 03, 2010 at 05:42:24PM +0100, Henrik Bengtsson wrote:
Hi Henrik,

 My Wednesday procrastination:
 
 There's quite some number of decimals in the SVG and some whitespace,
 so some dummy trimming gives:
 
 x - readLines(http://developer.r-project.org/Logo/Rlogo-1.svg;);
...
Cool :). However, wrt. ressource consumption when the image gets
loaded/rendered, I think there is no noticable gain. But anyway,
reducing the package size is always a good thing :) !

Thanx,
jel.
-- 
Otto-von-Guericke University http://www.cs.uni-magdeburg.de/
Department of Computer Science   Geb. 29 R 027, Universitaetsplatz 2
39106 Magdeburg, Germany Tel: +49 391 67 12768

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Marc Schwartz

On Mar 4, 2010, at 10:10 AM, Jens Elkner wrote:

 On Thu, Mar 04, 2010 at 09:39:41AM -0600, Marc Schwartz wrote:
 
 There has been talk over the years of moving to Bugzilla, but I am not clear 
 on present status.
 
 IMHO Bugzilla is too challenging for normal users/human beeings (even
 developers are often not able to extract the info they need). So JIRA
 (http://www.atlassian.com/software/jira/) might be a much better choice -
 usually it is not a problem to ask for and get a license for free for
 OpenSource projects ...

Jira was discussed a couple of years ago:

  http://tolstoy.newcastle.edu.au/R/e5/devel/08/09/0006.html

I presume that the disposition towards non-FOSS platforms remains.

FWIW, the company that I work for uses Bugzilla (and SVN) on RHEL for our own 
internal development and bug/issue reporting processes. We have both clients 
and employees using our Bugzilla platform.

The key to having a successful result is not the software, but that the end 
users and developers can interact with a base of information that enables 
productive conversation. That places a certain burden on those reporting the 
bugs/issues to understand both when and how to report bugs, including providing 
sufficient information on the platform, versions, code and data to reliably 
reproduce the issue observed.

As we frequently see on both R-Help and R-Devel, in my mind, that is the 
limiting characteristic. With bug.report(), we still have issues and that is 
arguably independent of the host bug management system.

I would argue that if there was a somewhat bigger hurdle in place to bug 
reporting that compelled folks to post to R-Help first, before filing a formal 
bug report, that this would not be a bad outcome. Whatever the host system may 
be, a member of R Core will still need to manually process the report, adding 
to their overhead. Reducing the number of false positives would be helpful.

Marc

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Simon Urbanek
Just to calm the discussion a bit - we already have decided to go with  
Bugzilla, we created tools for the import of old PRs and the new bug  
system is up and running in a test phase. The current downtime is not  
directly related to that - the cause is being investigated.


Cheers,
Simon


On Mar 4, 2010, at 11:58 , Marc Schwartz wrote:



On Mar 4, 2010, at 10:10 AM, Jens Elkner wrote:


On Thu, Mar 04, 2010 at 09:39:41AM -0600, Marc Schwartz wrote:

There has been talk over the years of moving to Bugzilla, but I am  
not clear on present status.


IMHO Bugzilla is too challenging for normal users/human beeings (even
developers are often not able to extract the info they need). So JIRA
(http://www.atlassian.com/software/jira/) might be a much better  
choice -

usually it is not a problem to ask for and get a license for free for
OpenSource projects ...


Jira was discussed a couple of years ago:

 http://tolstoy.newcastle.edu.au/R/e5/devel/08/09/0006.html

I presume that the disposition towards non-FOSS platforms remains.

FWIW, the company that I work for uses Bugzilla (and SVN) on RHEL  
for our own internal development and bug/issue reporting processes.  
We have both clients and employees using our Bugzilla platform.


The key to having a successful result is not the software, but that  
the end users and developers can interact with a base of information  
that enables productive conversation. That places a certain burden  
on those reporting the bugs/issues to understand both when and how  
to report bugs, including providing sufficient information on the  
platform, versions, code and data to reliably reproduce the issue  
observed.


As we frequently see on both R-Help and R-Devel, in my mind, that is  
the limiting characteristic. With bug.report(), we still have issues  
and that is arguably independent of the host bug management system.


I would argue that if there was a somewhat bigger hurdle in place to  
bug reporting that compelled folks to post to R-Help first, before  
filing a formal bug report, that this would not be a bad outcome.  
Whatever the host system may be, a member of R Core will still need  
to manually process the report, adding to their overhead. Reducing  
the number of false positives would be helpful.


Marc

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel




__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Marc Schwartz
Thanks for the update and your work on this Simon.

Regards,

Marc

On Mar 4, 2010, at 11:36 AM, Simon Urbanek wrote:

 Just to calm the discussion a bit - we already have decided to go with 
 Bugzilla, we created tools for the import of old PRs and the new bug system 
 is up and running in a test phase. The current downtime is not directly 
 related to that - the cause is being investigated.
 
 Cheers,
 Simon
 
 
 On Mar 4, 2010, at 11:58 , Marc Schwartz wrote:
 
 
 On Mar 4, 2010, at 10:10 AM, Jens Elkner wrote:
 
 On Thu, Mar 04, 2010 at 09:39:41AM -0600, Marc Schwartz wrote:
 
 There has been talk over the years of moving to Bugzilla, but I am not 
 clear on present status.
 
 IMHO Bugzilla is too challenging for normal users/human beeings (even
 developers are often not able to extract the info they need). So JIRA
 (http://www.atlassian.com/software/jira/) might be a much better choice -
 usually it is not a problem to ask for and get a license for free for
 OpenSource projects ...
 
 Jira was discussed a couple of years ago:
 
 http://tolstoy.newcastle.edu.au/R/e5/devel/08/09/0006.html
 
 I presume that the disposition towards non-FOSS platforms remains.
 
 FWIW, the company that I work for uses Bugzilla (and SVN) on RHEL for our 
 own internal development and bug/issue reporting processes. We have both 
 clients and employees using our Bugzilla platform.
 
 The key to having a successful result is not the software, but that the end 
 users and developers can interact with a base of information that enables 
 productive conversation. That places a certain burden on those reporting the 
 bugs/issues to understand both when and how to report bugs, including 
 providing sufficient information on the platform, versions, code and data to 
 reliably reproduce the issue observed.
 
 As we frequently see on both R-Help and R-Devel, in my mind, that is the 
 limiting characteristic. With bug.report(), we still have issues and that is 
 arguably independent of the host bug management system.
 
 I would argue that if there was a somewhat bigger hurdle in place to bug 
 reporting that compelled folks to post to R-Help first, before filing a 
 formal bug report, that this would not be a bad outcome. Whatever the host 
 system may be, a member of R Core will still need to manually process the 
 report, adding to their overhead. Reducing the number of false positives 
 would be helpful.
 
 Marc

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] R 2.10.0 or R 2.10.1 installation fails on HP-UX B.11.23 U ia64

2010-03-04 Thread Alex Bryant
Hi Folks, I can find any hits anywhere for the following compilation error:

eigen.f
   external subroutine BALANC
   external subroutine BALBAK
   external subroutine CBABK2
   external subroutine CBAL
   external subroutine CDIV
   external subroutine COMQR
   external subroutine COMQR2
   external subroutine CORTH
   external subroutine CSROOT
   external subroutine ELMHES
   external subroutine ELTRAN
   external function EPSLON
   external subroutine HQR
   external subroutine HQR2
   external subroutine HTRIBK
   external subroutine HTRIDI
   external function PYTHAG
   external subroutine TQL1
   external subroutine TQL2
   external subroutine TQLRAT
   external subroutine TRED1
   external subroutine TRED2
   external subroutine RG
   external subroutine RS
   external subroutine CG
   external subroutine CH

3502 Lines Compiled
Make: Don't know how to make #.  Stop.
*** Error exit code 1

Stop.
*** Error exit code 1

Stop.
*** Error exit code 1

Stop.

Has anyone seen this make error before?

Make: Don't know how to make #.  Stop.

Thanks for any thoughts.


//
// Alex Bryant
// Software Developer
// Integrated Clinical Systems, Inc.
// 908-996-7208



Confidentiality Note: This e-mail, and any attachment to...{{dropped:13}}

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] (PR#14226) -- Re: libgfortran misplaced in Mac OS X R install

2010-03-04 Thread Prof Brian Ripley
Another possibility is to link statically to libgfortran.  That has 
pros and cons, but for libgfortran not many cons apart from space for 
multiple copies in sundry packages (and is what is done on Windows, 
BTW).


There are several ways to arrange that.  As far as I recall I 
temporarily removed /usr/local/lib/libgfortran*.dylib: another way is 
to edit FLIBS in Makeconf (but then you do need to know which 
copies of that file you need to edit).


As far as I know we don't document in the standard manuals how to 
build distributable binary Mac packages, and perhaps we should do so 
in due course (or at least point at where the information can be 
found).


On Thu, 4 Mar 2010, Simon Urbanek wrote:


Hi Michael,

On Mar 3, 2010, at 12:01 , Michael Spiegel wrote:

I am the guy who compiles the OpenMx binaries.  We would be delighted to 
place our package on CRAN, once the project is stable enough so that we are 
comfortable releasing it to the larger public.  Let's try to track down 
where I made a mistake.  Our Makevars.in file contains the line:


PKG_LIBS=$(FLIBS) $(BLAS_LIBS) $(LAPACK_LIBS)

In addition, on the build machine I noticed that a copy of 
libgfortran.2.dylib exists at /usr/local/lib.  I believe the Xcode install 
placed a copy of it there.


No, it is part of the GNU Fortran installation. Anything you compile with a 
Fortran requires that you have that Fortran installed at run time, because 
Fortran uses its own run-time libraries (if the Fortran you compiled with 
used dynamic libraries). This implies that if you distribute your package you 
have to tell users to install the same Fortran you used to compile it.


However, unlike other unices Mac users don't necessarily have development 
tools installed, so on CRAN we make an effort to modify the binaries such 
that they work even without the tools they have been compiled with. There are 
several possible approaches, but since R itself already uses the same 
Fortran, we ship a copy of the Fortran libraries inside R and modify packages 
such that they use it instead of the one from dev tools (see below for 
details).




To create the binary release, I run  R CMD INSTALL --build.


That is not sufficient to create a binary of your package, because it 
contains a configure script (this is unrelated to the above - see R-admin 
2.6). What you want to use is something like this (assuming R 2.10.1 Leopard 
build and Fortran from CRAN):


R --arch=i386 CMD INSTALL OpenMx_0.2.9-1147.tar.gz
R --arch=x86_64 CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
R --arch=ppc CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
cd /Library/Frameworks/R.framework/Versions/2.10/Resources/library

# fix the Fortran paths to point to R 2.10 instead
for lib in `ls OpenMx/libs/*/*.so`; do
install_name_tool -change /usr/local/lib/libgfortran.2.dylib \
  /Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libgfortran.2.dylib 
\

 $lib
done

# change permissions for distribution
sudo chown -Rh root:admin OpenMx
sudo chmod -R g+w OpenMx

# pack it up
tar fvcz ~/OpenMx_0.2.9-1147.tgz OpenMx


You can check that you have the correct paths using otool -L:

ginaz:library$ otool -L OpenMx/libs/*/*.so
OpenMx/libs/i386/OpenMx.so:
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libgfortran.2.dylib 
(compatibility version 3.0.0, current version 3.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libRblas.dylib 
(compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libRlapack.dylib 
(compatibility version 2.10.0, current version 2.10.1)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libR.dylib 
(compatibility version 2.10.0, current version 2.10.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 
(compatibility version 150.0.0, current version 476.19.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current 
version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 111.1.4)
	/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib 
(compatibility version 1.0.0, current version 242.0.0)

OpenMx/libs/ppc/OpenMx.so:
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libgfortran.2.dylib 
(compatibility version 3.0.0, current version 3.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libRblas.dylib 
(compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libRlapack.dylib 
(compatibility version 2.10.0, current version 2.10.1)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libR.dylib 
(compatibility version 2.10.0, current version 2.10.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 
(compatibility version 150.0.0, current version 

[Rd] distributable binary Mac packages [Was: libgfortran misplaced in Mac OS X R install]

2010-03-04 Thread Simon Urbanek

On Mar 4, 2010, at 14:44 , Prof Brian Ripley wrote:

Another possibility is to link statically to libgfortran.  That has  
pros and cons, but for libgfortran not many cons apart from space  
for multiple copies in sundry packages (and is what is done on  
Windows, BTW).


There are several ways to arrange that.  As far as I recall I  
temporarily removed /usr/local/lib/libgfortran*.dylib: another way  
is to edit FLIBS in Makeconf (but then you do need to know which  
copies of that file you need to edit).




The Xcode add-on compilers from R.research.att.com use static  
libgfortran by default, so if you didn't install any other Fortran,  
that will be the default.


However, there are issues when linking multiple modules that also link  
libgfortran statically - dylibs are not allowed to contain multiple  
common symbols on OS X (with flat namespaces) which is the case if you  
get static libgfortran from two sources independently. The most  
prominent example is libRlapack linked into a package that also uses  
Fortran (that's why CRAN Rlapack does not use static libgfortran).  
There are ways around, but it all makes the already complex issue even  
more complex ;).



As far as I know we don't document in the standard manuals how to  
build distributable binary Mac packages, and perhaps we should do so  
in due course (or at least point at where the information can be  
found).




Yes, I agree. There are bits and pieces in the R for Mac FAQ, but it  
may be worth putting what I wrote below into the FAQ.


Thanks,
Simon




On Thu, 4 Mar 2010, Simon Urbanek wrote:


Hi Michael,

On Mar 3, 2010, at 12:01 , Michael Spiegel wrote:

I am the guy who compiles the OpenMx binaries.  We would be  
delighted to place our package on CRAN, once the project is stable  
enough so that we are comfortable releasing it to the larger  
public.  Let's try to track down where I made a mistake.  Our  
Makevars.in file contains the line:

PKG_LIBS=$(FLIBS) $(BLAS_LIBS) $(LAPACK_LIBS)
In addition, on the build machine I noticed that a copy of  
libgfortran.2.dylib exists at /usr/local/lib.  I believe the Xcode  
install placed a copy of it there.


No, it is part of the GNU Fortran installation. Anything you  
compile with a Fortran requires that you have that Fortran  
installed at run time, because Fortran uses its own run-time  
libraries (if the Fortran you compiled with used dynamic  
libraries). This implies that if you distribute your package you  
have to tell users to install the same Fortran you used to compile  
it.


However, unlike other unices Mac users don't necessarily have  
development tools installed, so on CRAN we make an effort to modify  
the binaries such that they work even without the tools they have  
been compiled with. There are several possible approaches, but  
since R itself already uses the same Fortran, we ship a copy of the  
Fortran libraries inside R and modify packages such that they use  
it instead of the one from dev tools (see below for details).




To create the binary release, I run  R CMD INSTALL --build.


That is not sufficient to create a binary of your package, because  
it contains a configure script (this is unrelated to the above -  
see R-admin 2.6). What you want to use is something like this  
(assuming R 2.10.1 Leopard build and Fortran from CRAN):


R --arch=i386 CMD INSTALL OpenMx_0.2.9-1147.tar.gz
R --arch=x86_64 CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
R --arch=ppc CMD INSTALL --libs-only OpenMx_0.2.9-1147.tar.gz
cd /Library/Frameworks/R.framework/Versions/2.10/Resources/library

# fix the Fortran paths to point to R 2.10 instead
for lib in `ls OpenMx/libs/*/*.so`; do
install_name_tool -change /usr/local/lib/libgfortran.2.dylib \
 /Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libgfortran.2.dylib \

$lib
done

# change permissions for distribution
sudo chown -Rh root:admin OpenMx
sudo chmod -R g+w OpenMx

# pack it up
tar fvcz ~/OpenMx_0.2.9-1147.tgz OpenMx


You can check that you have the correct paths using otool -L:

ginaz:library$ otool -L OpenMx/libs/*/*.so
OpenMx/libs/i386/OpenMx.so:
OpenMx.so (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libgfortran.2.dylib (compatibility version 3.0.0, current version  
3.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRblas.dylib (compatibility version 0.0.0, current version 0.0.0)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libRlapack.dylib (compatibility version 2.10.0, current version  
2.10.1)
	/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/ 
libR.dylib (compatibility version 2.10.0, current version 2.10.1)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/ 
CoreFoundation (compatibility version 150.0.0, current version  
476.19.0)
	/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current  
version 1.0.0)
	/usr/lib/libSystem.B.dylib 

Re: [Rd] Bug reporting system inquiry plus a bug report related to sort

2010-03-04 Thread Jens Elkner
On Thu, Mar 04, 2010 at 10:58:16AM -0600, Marc Schwartz wrote:
... 
 Jira was discussed a couple of years ago:
 
   http://tolstoy.newcastle.edu.au/R/e5/devel/08/09/0006.html
 
 I presume that the disposition towards non-FOSS platforms remains.

Was just an idea. IMHO the hosting team needs to decide, what they
can accomplish/how many time they are able to invest to get that thing
driven/maintained/adjusted. Everybody else has to live with that decision
;-)
  
...
 The key to having a successful result is not the software, but that the end 
 users and developers can interact with a base of information that enables 
 productive conversation.

Exactly wrt. the last part. But often even developers just want to get
its work done, don't have the time to get trained to a more or less
complicated beast, have at least at the beginning no intention to extend
it and just want to have their customers report bugs/oddities in a 
usable style, which is a problem, if one presents an interface, which is
hard to use / use as intented because of the none-expert knowledge ...
So IMHO success certainly depends on the software, as long as you do not
have access limited to a [small] trained group ...
...
 I would argue that if there was a somewhat bigger hurdle

Hurdles wrt. SW dev and help are always bad. Thinking about how to make it
easier to find the required information/right direction is a good thing
...
 Whatever the host system may be, a member of R Core will still need to 
 manually process the report, adding to their overhead. Reducing the number of 
 false positives would be helpful.
...
Yes. So good/extensive documentation/examples is the? key for success ? ;-)

Regards,
jel.
-- 
Otto-von-Guericke University http://www.cs.uni-magdeburg.de/
Department of Computer Science   Geb. 29 R 027, Universitaetsplatz 2
39106 Magdeburg, Germany Tel: +49 391 67 12768

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] scale(x, center=FALSE) (PR#14219)

2010-03-04 Thread Ben Bolker
Ben Bolker bolker at ufl.edu writes:

 [re: behavior of scale() when center=FALSE and scale=TRUE]

   Again, I agree with you that the behavior is not optimal, but it is
 very hard to make changes in R when the behavior is sub-optimal rather
 than actually wrong (by some definition).  R-core is very conservative
 about changes that break backward compatibility; I would like it if they
 chose to change the function to use standard deviation rather than
 root-mean-square, but I doubt it will happen (and it would break things
 for any users who are relying on the current definition).
 
[snip]  

  I have attached a patch
 file (and append the information below as well) that changes standard
 deviation back to root mean square and is much more explicit about
 this issue ... I hope R-core will jump in, critique it, and possibly use
 it in some form to improve (?) the documentation ...
 
   [PS: I have written that the scaling is equivalent to sd() if and
 only if centering was done.  Technically it would also be equivalent if
 the column already had zero mean ...]
 
===
--- scale.Rd(revision 51180)
+++ scale.Rd(working copy)
@@ -41,13 +41,18 @@
   equal to the number of columns of \code{x}, then each column of
   \code{x} is divided by the corresponding value from \code{scale}.  If
   \code{scale} is \code{TRUE} then scaling is done by dividing the
-  (centered) columns of \code{x} by their standard deviations, and if
+  (centered) columns of \code{x} by their root-mean-squares, and if
   \code{scale} is \code{FALSE}, no scaling is done.
-
-  The standard deviation for a column is obtained by computing the
-  square-root of the sum-of-squares of the non-missing values in the
-  column divided by the number of non-missing values minus one (whether
-  or not centering was done).
+
+  The root-mean-square for a (possibly centered)
+  column is defined as
+  \eqn{\sqrt{\sum(x^2)/(n-1)}}{sqrt(sum(x^2)/(n-1))},
+  where \eqn{x} is a vector of the non-missing values
+  and \eqn{n} is the number of non-missing values.
+  If (and only if) centering was done,
+  this is equivalent to \code{sd(x,na.rm=TRUE)}.
+  (To scale by the standard deviations without centering,
+  use \code{scale(x,center=FALSE,scale=apply(x,2,sd,na.rm=TRUE))}.)
 }
\references{
   Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)


 (Bump re: suggested update to scale.Rd .  Is this under
consideration? I'll stop pestering if it's considered
unacceptable, just don't want it to vanish without a trace ...)

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel