Re: [Rd] noweb and R

2009-07-27 Thread Gregor Gorjanc
Terry

Take a look in R News - there was a paper published on that topic.

gg

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


[Rd] Align legend title wish remainder (PR#13415)

2008-12-23 Thread gregor . gorjanc
Full_Name: Gregor Gorjanc
Version: 2.8.0 and above
OS: generic
Submission from: (NULL) (82.192.44.219)


This is just a remainder for a wish to align legend title as 
reported and solved at

https://stat.ethz.ch/pipermail/r-devel/2008-December/051642.html

Thanks!

Regards, Gregor

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


Re: [Rd] Wishlist - better object.size() function

2008-11-19 Thread Gregor Gorjanc
Benjamin Hofner Benjamin.Hofner at imbe.med.uni-erlangen.de writes:
...
 - Why is the function returning the size in bytes? This is (in most 
 cases) overly accurate and for humans hard to read. I would suggest to 
 have it printed in mb per default and additionally add a switch to 
 choose the appropriate unit.
 
 This is a first proposal:
...

There was a such proposal some time ago. See

https://stat.ethz.ch/pipermail/r-devel/2006-August/038935.html
https://stat.ethz.ch/pipermail/r-devel/2006-September/042673.html
http://tolstoy.newcastle.edu.au/R/e2/devel/06/09/0181.html

Unfortunatelly, there was no interest in adding this to R. I removed the
files mentioned in above posts. However, the proposed implementation was
added to my private-playground package ggmisc. The package can be downloaded
at

http://gregor.gorjanc.googlepages.com/ggmisc_0.2.1.tar.gz
http://gregor.gorjanc.googlepages.com/ggmisc_0.2.1.zip 

gg

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


[Rd] Bug in format.default(): na.encode does not have any effect for (PR#12318)

2008-08-07 Thread Gregor . Gorjanc
Hi!

If I use format() on numeric vector, na.encode argument does not have any e=
ffect. This
was reported before:
- https://stat.ethz.ch/pipermail/r-help/2007-October/143881.html
- http://tolstoy.newcastle.edu.au/R/e2/devel/06/09/0360.html

It works for other (say character) classes!

 format(c(a, NA), na.encode=3DTRUE)
[1] a  NA

 format(c(a, NA), na.encode=3DFALSE)
[1] a NA

I explored this a bit and found out that format.default() uses prettyNum(.I=
nternal(format(...)))
for formatting the logical, numeric, complex, ... classes. Simple tests (se=
e bellow) show that
.Internal(format()) does not obey the na.encode argument.

## Encode NA as NA
 .Internal(format(x=3Dc(1, NA), trim=3DFALSE, digits=3DNULL, nsmall=3D0, w=
idth=3DNULL, adj=3D1, na.encode=3DTRUE, scientific=3DNA))
[1]  1 NA

## Do not encode NA as NA
 .Internal(format(x=3Dc(1, NA), trim=3DFALSE, digits=3DNULL, nsmall=3D0, w=
idth=3DNULL, adj=3D1, na.encode=3DFALSE, scientific=3DNA))
[1]  1 NA
## -- no effect

## Does prettyNum encode NA as NA
 prettyNum(c(1, NA))
[1] 1 NA
## -- not for character

 prettyNum(c(1, NA))
[1] 1 NA
## -- but it does for numeric

I did all my tests with my Ubuntu box running R

 version
   _
platform   i486-pc-linux-gnu
arch   i486
os linux-gnu
system i486, linux-gnu
status
major  2
minor  7.1
year   2008
month  06
day23
svn rev45970
language   R
version.string R version 2.7.1 (2008-06-23)

--
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Facultywww: http://gregor.gorjanc.googlepages.com
Zootechnical Department blog: http://ggorjan.blogspot.com
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si
SI-1230 Domzale fax: +386 (0)1 72 17 888
Slovenia, Europetel: +386 (0)1 72 17 861

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


[Rd] Methods for format() are not consistent with NA values (PR#12385)

2008-08-07 Thread Gregor . Gorjanc
Hi!

Methods for format() are not consistent when applied to vectors
having NA values. Some methods encode NA values to NA
by default, while other do not. It would be much more easier to
write other functions if these functions would all behave
consistently.

Examples produced with R

 version
   _
platform   i486-pc-linux-gnu
arch   i486
os linux-gnu
system i486, linux-gnu
status
major  2
minor  7.1
year   2008
month  06
day23
svn rev45970
language   R
version.string R version 2.7.1 (2008-06-23)

testData - data.frame(
   fac1=3Dfactor(c(NA, letters[1:9], hjh)),
   fac2=3Dfactor(c(letters[6:15], NA)),
   cha1=3Dc(letters[17:26], NA),
   cha2=3Dc(NA, longer, letters[25:17]),
   stringsAsFactors=3DFALSE)
levels(testData$fac1) - c(levels(testData$fac1), unusedLevel)
testData$Date - as.Date(1900-1-1)
testData$Date[2] - NA
testData$POSIXt - as.POSIXct(strptime(1900-1-1 01:01:01,
   format=3D%Y-%m-%d %H:%M:%S))
testData$POSIXt[5] - NA

## --- Character ---

 format(testData$cha1)
 [1] q  r  s  t  u  v  w  x  y  z  NA

 format(testData$cha1, na.encode=3DTRUE)
 [1] q  r  s  t  u  v  w  x  y  z  NA

 format(testData$cha1, na.encode=3DFALSE)
 [1] q r s t u v w x y z NA

## --- Factor ---

 format(testData$fac1)
 [1] NA  a   b   c   d   e   f   g   h   i   hjh

 format(testData$fac1, na.encode=3DTRUE)
 [1] NA  a   b   c   d   e   f   g   h   i   hjh

 format(testData$fac1, na.encode=3DFALSE)
 [1] NAa   b   c   d   e   f   g   h   i   hjh

## --- Numeric et al. ---

## na.encode has no effect

## --- Date ---

 format(testData$Date)
 [1] 1900-01-01 NA   1900-01-01 1900-01-01 1900-01-01
 [6] 1900-01-01 1900-01-01 1900-01-01 1900-01-01 1900-01-01
[11] 1900-01-01

 format(testData$Date, na.encode=3DTRUE)
 [1] 1900-01-01 NA   1900-01-01 1900-01-01 1900-01-01
 [6] 1900-01-01 1900-01-01 1900-01-01 1900-01-01 1900-01-01
[11] 1900-01-01

 format(testData$Date, na.encode=3DFALSE)
 [1] 1900-01-01 NA   1900-01-01 1900-01-01 1900-01-01
 [6] 1900-01-01 1900-01-01 1900-01-01 1900-01-01 1900-01-01
[11] 1900-01-01

## --- POSIXt ---

 format(testData$POSIXt)
 [1] 1900-01-01 01:01:01 1900-01-01 01:01:01 1900-01-01 01:01:01
 [4] 1900-01-01 01:01:01 NA1900-01-01 01:01:01
 [7] 1900-01-01 01:01:01 1900-01-01 01:01:01 1900-01-01 01:01:01
[10] 1900-01-01 01:01:01 1900-01-01 01:01:01

 format(testData$POSIXt, na.encode=3DTRUE)
 [1] 1900-01-01 01:01:01 1900-01-01 01:01:01 1900-01-01 01:01:01
 [4] 1900-01-01 01:01:01 NA1900-01-01 01:01:01
 [7] 1900-01-01 01:01:01 1900-01-01 01:01:01 1900-01-01 01:01:01
[10] 1900-01-01 01:01:01 1900-01-01 01:01:01

 format(testData$POSIXt, na.encode=3DFALSE)
 [1] 1900-01-01 01:01:01 1900-01-01 01:01:01 1900-01-01 01:01:01
 [4] 1900-01-01 01:01:01 NA1900-01-01 01:01:01
 [7] 1900-01-01 01:01:01 1900-01-01 01:01:01 1900-01-01 01:01:01
[10] 1900-01-01 01:01:01 1900-01-01 01:01:01

--
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Facultywww: http://gregor.gorjanc.googlepages.com
Zootechnical Department blog: http://ggorjan.blogspot.com
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si
SI-1230 Domzale fax: +386 (0)1 72 17 888
Slovenia, Europetel: +386 (0)1 72 17 861

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


Re: [Rd] faqs

2007-11-15 Thread Gregor Gorjanc
Gabor Grothendieck ggrothendieck at gmail.com writes:
 inst/NEWS would have the advantage of consistency with R itself
 which also has a NEWS file.
 
...
  My vote is for inst/ChangeLog.

I wote for inst/NEWS, while inst/ChangeLog can also be present to show more
details such as svn log.

Gregor

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


[Rd] Typo in regex help page

2007-09-03 Thread Gregor Gorjanc
Hi!

I believe there is a typo in

R/src/library/base/man/regex.Rd

The 52nd line looks like:

The metacharacters are in EREs are ...
 ^^^

Gregor

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


Re: [Rd] developing a package: increase the number of functions

2007-07-31 Thread Gregor Gorjanc
Prof Brian Ripley ripley at stats.ox.ac.uk writes:
...
 
 Do you have a NAMESPACE?

Hi Albart!

About the NAMESACE issue. Functions that are specified in NAMESPACE
are available when you install a package, while internal ones can
only be accessed with

myInternalFun:::myPackage

Gregor

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


Re: [Rd] Problem with: Vignette dependencies (\Vignet teDepends{} entries) must be contained in

2007-04-18 Thread Gregor Gorjanc
Gregor Gorjanc gregor.gorjanc at bfro.uni-lj.si writes:
 
 Hello!
 
 I have just discovered a possible bug or lack of my knowledge. The last
 option is not so uncommon and I decided to ask here before flooding the
 bugs repository.
 
 Say I have a package test with vignette. Moving package directory to
 some other name, say test2, fails R CMD check with

This problem is due to my specification in Rnw file i.e.

% \VignetteDepends{test}

If I remove this or remove just test and leave some other packages in it (that
are also in DESCRIPTION Depends field), then previously reported error in R CMD
check does not show up. It seems that I have not understood \VignetteDepends{}
properly. I thought that we need to specify all packages that are needed for
vignette to work.

Gregor

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


Re: [Rd] Sweave.sh shell script on CRAN

2007-04-16 Thread Gregor Gorjanc
Duncan Murdoch wrote:
 I do not have any experience with use of (bash) shell scripts under
 Windows. Sweave.sh can be used with Cygwin, but I am not sure how to use
 shell script without Cygwin. I noticed that some scripts in R*/bin
 directory on our Windows machine are perl (build, check, INSTALL, ...)
 and shell (Rd2dvi.sh, Stangle.sh, Sweave.sh, ...) scripts. This
 therefore means that R ships also perl and shell interpreter or am I
 missing something?
 
 We don't ship Perl or sh.exe, but we do describe how to get them in the
 R Admin manual.

Maybe I got this totally wrong. Say someone who uses Windows finds R and
installs it via setup file. Can he/she launch the folowing without
having Perl and/or sh.exe?

R CMD script whateverOption

 I'd be interested in talking to you about integration of my patchDVI
 functions into your script.  They allow forward and reverse search
 between the .dvi file and the .Rnw file (in yap and xdvi, at least).

I am all ears.

Gregor

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


Re: [Rd] Sweave.sh shell script on CRAN

2007-04-16 Thread Gregor Gorjanc
Gabor Grothendieck wrote:
 On Windows sweave.bat is a Windows XP batchfile that will run sweave
 and then latex and then display the file on screen.   Issuing the command
 sweave without args from the Windows command line gives info on how to
 use it.
 

Nice to see windows equivalent. However, I must say that my script
provides several ways to get to the result e.g. if you use prosper you
need to go via postscript, beamer behaves differently etc.

There are now the following ways of LaTeX processing:

Command and path Script option Used tools
- texi2dvi
  - PS  -tp, --texi2dvi2ps   texi2dvi and dvips
  - PS to PDF   -tld, --texi2dvi2ps2pdf  texi2dvi, dvips and ps2pdf
  - PDF -td, --texi2dvi2pdf  texi2dvi with pdf option

- latex
  - PS  -lp, --latex2dvi2ps  hardcoded 'latex+co' + dvips
  - PS to PDF   -lld, --latex2dvi2ps2pdf hardcoded 'latex+co' + dvips

- pdflatex
  - PDF -ld, --latex2pdf hardcoded 'latex+co' + dvips

 To install sweave.bat you must place sweave.bat (and Rcmd.bat) both
 from this batchfiles distribution anywhere in your path.  It does not
 require
 sh.exe and does not make use of perl but does use  Rcmd sweave
 so would have no prerequisites beyond latex, Acrobot (or other viewer)
 and those of Rcmd.

As I stated I am not sure how Rcmd works, but Sweave in SVN is a shell
script as well as Rcmd! How does it become an exe file?

Gregor

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


Re: [Rd] Sweave.sh shell script on CRAN

2007-04-16 Thread Gregor Gorjanc
Gabor Grothendieck wrote:
...
 If by Sweave in SVN you are referring to sweave.bat in the batchfiles
 distribution then its not a shell file; rather, its a Windows batch file.

Nope. I meant Sweave.sh in R SVN.

Gregor

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


Re: [Rd] Sweave.sh shell script on CRAN

2007-04-16 Thread Gregor Gorjanc
Duncan Murdoch wrote:
...
 Maybe I got this totally wrong. Say someone who uses Windows finds R and
 installs it via setup file. Can he/she launch the folowing without
 having Perl and/or sh.exe?

 R CMD script whateverOption
 
 No.  Installing a binary package has a pure R implementation so it
 doesn't need R CMD, but most of the capabilities of R CMD are not
 available with a basic R install.
 
 There are two reasons for this.  One is that the extra tools that are
 needed take up a lot of space, so they would make the setup file really
 huge.  That's an issue of less importance these days than in the past.
 
 Another issue that is still important is that not all the tools needed
 have licenses compatible with redistribution:  in particular ActiveState
 Perl and the Microsoft Help Workshop.  There are other Perl
 implementations, but in the past Brian Ripley found that they didn't
 work.  I don't know if that's still true.  (In fact, I don't know if the
 licenses still limit redistribution.)


OK. Thank you for this explanation. I can not live without unix shell
and therefore never noticed that under Windows say R CMD INSTALL or
other R CMD scripts do not work without sh.exe (and/or Perl).

Gregor

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


Re: [Rd] Sweave.sh shell script on CRAN

2007-04-16 Thread Gregor Gorjanc
Duncan Murdoch wrote:
 Can you just clarify what the dependencies are for

 Rcmd sweave

 where Rcmd is the Rcmd command distributed with R that is run
 from the Windows command line.   Does that require perl or other
 tools to run?
 
 That needs sh.exe, not Perl.  But it's just the equivalent of
 
  echo library('utils'); Sweave('filename') | Rterm --no-restore --slave

Then sweave.bat from batchfiles depends on sh.exe as my Sweave.sh.
However, I guess that above line can also be done with MS command line.

Gregor

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


Re: [Rd] fortune() in .Rprofile conflicts with R CMD INSTALL

2007-03-09 Thread Gregor Gorjanc
Kurt Hornik wrote:
 Kurt Hornik writes:
  Well, r-devel's src/scripts/INSTALL.in now has
 
 if test -z ${lib}; then
   lib=`echo cat(.libPaths()[1]) | \
 R_DEFAULT_PACKAGES=NULL ${R_EXE} --no-save --slave`
   message Installing to library '$lib'
 
 so we need to find a way to just get the result of cat(.libPaths()[1])
 into $lib as intended.
 
 One idea might be ensuring that this gets into the last line on its own,
 and then taking $lib as the last line of what we got ...
 
 I think I found (and committed) a solution for this.

Yep, looks OK now.

Thanks, Gregor

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


Re: [Rd] Segmentation fault on bin/R --version in R-devel

2007-03-04 Thread Gregor Gorjanc
Simon Urbanek wrote:
 Thanks, Gregor, it should be now fixed in the current R-devel.
 
 Cheers,
 Simon

Which I gladly confirm.

Gregor

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


[Rd] fortune() in .Rprofile conflicts with R CMD INSTALL

2007-03-04 Thread Gregor Gorjanc
Hello,

This is about fortune package, but I think that might be related also to
base R, so I am sending to package maintainer and R-devel list.

I have the following in my .Rprofile to break monotony of code writing

library(utils)
library(fortunes)
fortune()
detach(package:fortunes)

so I get a fortune every time I start R. It seems that this conflicts
with R CMD INSTALL in latest R-devel on Linux. Two things can happen:

1. R CMD INSTALL fails
--

$ R-devel CMD INSTALL connectedness
* Installing to library '
My preference goes with the numbering scheme attributed to a tribe on some
island in the Pacific which consists of a 'factor' with four levels: 'one',
'two', 'three', and 'lots'. Hence, I'd go with 'lots of R users'.
   -- Dirk Eddelbuettel (in a discussion about trying to estimate the
number of
  R users)
  R-help (April 2004)

/usr/local/R-devel/lib/R/library'
ERROR: cannot write to or create directory '
My preference goes with the numbering scheme attributed to a tribe on some
island in the Pacific which consists of a 'factor' with four levels: 'one',
'two', 'three', and 'lots'. Hence, I'd go with 'lots of R users'.
   -- Dirk Eddelbuettel (in a discussion about trying to estimate the
number of
  R users)
  R-help (April 2004)

/usr/local/R-devel/lib/R/library'

2. R CMD INSTALL installs package in wrong place - see bellow
--

$ R-devel CMD INSTALL connectedness
* Installing to library '
If you imagine that this pen is Trellis, then Lattice is not this pen.
   -- Paul Murrell (on the difference of Lattice (which eventually was
called
  grid) and Trellis)
  DSC 2001, Wien (March 2001)

/usr/local/R-devel/lib/R/library'
* Installing *source* package 'connectedness' ...
** R
** data
** inst
cat: /home/ggorjan/programs/R/devel/r-ggorjan/: Is a directory
cat: If: No such file or directory
cat: you: No such file or directory
cat: imagine: No such file or directory
cat: that: No such file or directory
cat: this: No such file or directory
cat: pen: No such file or directory
cat: is: No such file or directory
cat: Trellis,: No such file or directory
cat: then: No such file or directory
cat: Lattice: No such file or directory
cat: is: No such file or directory
cat: not: No such file or directory
cat: this: No such file or directory
cat: pen.: No such file or directory
cat: Paul: No such file or directory
cat: Murrell: No such file or directory
cat: (on: No such file or directory
cat: the: No such file or directory
cat: difference: No such file or directory
cat: of: No such file or directory
cat: Lattice: No such file or directory
cat: (which: No such file or directory
cat: eventually: No such file or directory
cat: was: No such file or directory
cat: called: No such file or directory
cat: grid): No such file or directory
cat: and: No such file or directory
cat: Trellis): No such file or directory
cat: DSC: No such file or directory
cat: 2001,: No such file or directory
cat: Wien: No such file or directory
cat: (March: No such file or directory
cat: 2001): No such file or directory
cat: /usr/local/R-devel/lib/R/library/connectedness/R/connectedness: No
such file or directory
** help
  Building/Updating help pages for package 'connectedness'
 Formats: text html latex example
  connect   texthtmllatex
  connectedness texthtmllatex   example
  levelsBySubsettexthtmllatex   example
  plot.connectednesstexthtmllatex   example
  subset.connectedness  texthtmllatex   example
** building package indices ...
* DONE (connectedness)

$ tree -d
.
|-- \012If you imagine that this pen is Trellis, then Lattice is not
this pen.\012   -- Paul Murrell (on the difference of Lattice (which
eventually was called\012  grid) and Trellis)\012  DSC 2001,
Wien (March 2001)\012\012
|   `-- usr
|   `-- local
|   `-- R-devel
|   `-- lib
|   `-- R
|   `-- library
|   `-- connectedness
|   |-- Meta
|   |-- R
|   |-- R-ex
|   |-- data
|   |-- doc
|   |-- help
|   |-- html
|   |-- latex
|   |-- man
|   `-- unitTests
|-- connectedness
|   |-- R
|   |-- data
|   |-- inst
|   |   |-- doc
|   |   `-- unitTests
|   |-- man
|   `-- tests
...

Looks like a bug to me.

Gregor

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


Re: [Rd] fortune() in .Rprofile conflicts with R CMD INSTALL

2007-03-04 Thread Gregor Gorjanc
Seth Falcon sfalcon at fhcrc.org writes:
 The quick fix for you is, I believe,
 
 if (interactive()) {
 library(fortunes)
 fortune()
 detach(package:fortunes)
 }
 
 Whether something could be changed so that R's output doesn't confuse
 itself and gcc when doing R CMD INSTALL, seems like it should be
 possible.

Yes, this solves my! problem. I do not know what is causing this behaviour. This
did not happen with 2.4.1

Thank you Seth.

Gregor

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


[Rd] Segmentation fault on bin/R --version in R-devel

2007-03-03 Thread Gregor Gorjanc
Hello!

I have tried to build and install latest version of R, but I am not able
to perform the install, due to seg. fault. I did the following after SVN
checkout and wget for recommendeds:

./configure --prefix=/usr/local/R-devel
make
make install

...
...
  tcut  texthtmllatex   example
  tobin texthtmllatex   example
  untangle.specials texthtmllatex   example
  veteran   texthtmllatex
** building package indices ...
* DONE (survival)
make[2]: Leaving directory
`/home/share/projectSoft/R/R/src/library/Recommended'
make[1]: Leaving directory
`/home/share/projectSoft/R/R/src/library/Recommended'
make[1]: Entering directory `/home/share/projectSoft/R/R/doc/manual'
make[1]: Nothing to be done for `front-matter'.
make[1]: Nothing to be done for `html-non-svn'.
make[1]: Leaving directory `/home/share/projectSoft/R/R/doc/manual'
SVN-REVISION is unchanged
make[1]: Entering directory `/home/share/projectSoft/R/R/m4'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/home/share/projectSoft/R/R/m4'
make[1]: Entering directory `/home/share/projectSoft/R/R/tools'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/home/share/projectSoft/R/R/tools'
make[1]: Entering directory `/home/share/projectSoft/R/R/doc'
installing doc ...
/usr/bin/install -c -m 644 ../NEWS /usr/local/R-devel/lib/R/doc
sh: line 1: 15129 Segmentation fault  ../bin/R --version 2/dev/null
help2man: can't get `--version' info from ../bin/R
make[1]: *** [R.1] Error 139
make[1]: Leaving directory `/home/share/projectSoft/R/R/doc'
make: *** [install] Error 1

gcc --version
gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

As can be seen I have Debian GNU/Linux.
Any clues?

Thank you!

Gregor

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


[Rd] Registration of native routines

2007-03-01 Thread Gregor Gorjanc
Dear R developers,

I am working on registration of native C and FORTRAN routines and have
encountered inconsistencies about this issue. I am referring to
Registering native routines section of R-ext manual.

*(DL_FUNC), F77_SUB, F77_SYMBOL

On line 5108 of R-ext.texi the array for method myCall is defined as

  {myCall, myCall, 3},

but looking at examples in src/library/stats/src/init.c I notice
addition of (DL_FUNC) i.e. upper definition would be

  {myCall, (DL_FUNC) myCall, 3},

This probably shows my poor knowledge of C, but what is the role of
(DL_FUNC)? Looking around the code I notice that DL_FUNC is used also in
other places. IMHO I would suggest that (DL_FUNC) is also mentioned in
the manual.

Additionally, what is the role of F77_SUB() in registration of FORTRAN
subroutines i.e. the following line is one example from
src/library/stats/src/init.c.

{lowesw, (DL_FUNC) F77_SUB(lowesw), 4}

src/main/registration.c for example uses F77_SYMBOL() instead of
F77_SUB(). Poking around the source I see that this is related to _. I
would again suggest to add this to the manual.

*Type and style field

For .C() and .Fortran() manual says that registration array can also
hold type and style fields. It is shown how type field should look like,
but nothing usable is said about style except

manualSaysTypically, one omits this information in the registration
data./manualSays

Why would one omit this if

manualSaysThe purpose is to allow @R{} to transfer values more
efficiently across the R-C/FORTRAN interface by avoiding copying values
when it is not necessary./manualSays?

Thank you!

Gregor

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


[Rd] Same method for more than one class

2007-03-01 Thread Gregor Gorjanc
Hi,

when defining method (I used length bellow just for the simplicity) for
myClass (S4 class) I use

setMethod(f=length, signature(x=myClass),
  def=function(x) {
cat(works)
  })

If I have myClass1 and myClass2 and mentioned method, which is not the
default one, applies to both classes I have to write two setMethod()
statements. Would it be possible to use

signature(x=c(myClass1, myClass2))

Currently it issues an error

setClass(Class=myClass1, representation=representation(x=integer))
setClass(Class=myClass2, representation=representation(x=integer))
setMethod(f=length, signature(x=myClass1),
  def=function(x) {
cat(works)
  })
## OK.

setMethod(f=length, signature(x=c(myClass1, myClass1)),
  def=function(x) {
cat(works)
  })
Error in signature(x = c(myClass1, myClass1)) :
bad class specified for element 1 (should be a single character string)

Regards, Gregor

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


Re: [Rd] Same method for more than one class

2007-03-01 Thread Gregor Gorjanc
Sean Davis wrote:
...
 
 Could you do:
 
 catFun - function(x) {
   cat(Works)
 }
 setMethod(f=length, signature(x=myClass1),def=catFun)
 setMethod(f=length, signature(x=myClass2),def=catFun)

Yep, that is what I wanted.

setMethod(f=length, signature(x=c(myClass1, myClass2))

would be shorter, but your proposal is also OK.

Thank you again, Gregor

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


Re: [Rd] Trailing message on R CMD BATCH

2007-01-10 Thread Gregor Gorjanc
Brian Ripley ripley at stats.ox.ac.uk writes:
 Unix versions of R CMD BATCH have reported proc.time() unless the script 
 ends in q().  E.g. if the input is 'search()' the output is
 
  invisible(options(echo = TRUE))
  search()
 [1] .GlobalEnvpackage:stats package:graphics
 [4] package:grDevices package:utils package:datasets
 [7] package:methods   Autoloads package:base
 
  proc.time()
 [1] 1.053 0.067 1.109 0.000 0.000
 

I did not notice that this is only for unix version of R CMD BATCH. Since 
R CMD BATCH is prefered way to run things in background and usually for longer
time it is good to have this info. I would suggest to add this also in Windows
version.

Gregor

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


Re: [Rd] setGeneric and file order in a package

2006-12-28 Thread Gregor Gorjanc
Ross Boylan ross at biostat.ucsf.edu writes:
 Are there any assumptions I can make about the order in which
 different files in the R package subdirectory will be evaluated?  For
 example, will it be alphabetical in the file names?  Will case
 distinctions be ignored?

Take a look at collate field in DESCRIPTION file. This is from BioC wiki[1]

If you are using S4 classes or methods, add a Collate field to your package's
DESCRIPTION file. Generally, class definitions come first, generics second,
methods third, and then everything else.

Gregor

[1]http://wiki.fhcrc.org/bioc/Package_Guidelines

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


Re: [Rd] Enhances, require() and quality control

2006-12-12 Thread Gregor Gorjanc
Kurt Hornik wrote:
 Gregor Gorjanc writes:
 
 Hello!
 
 I am working on a package where Enhances field seems to be a plausible
 option. When I add package, say coda, to this field, I get the
 following warning with recent R-devel:
 
 
 
 * checking for working latex ... OK
 * using log directory '/home/ggorjan/programs/R/devel/test.Rcheck'
 * using R version 2.5.0 Under development (unstable) (2006-12-06 r40129)
 * checking for file 'test/DESCRIPTION' ... OK
 * this is package 'test' version '0.1'
 * checking package dependencies ... WARNING
 'library' or 'require' calls not declared from:
   coda
 
 See the information on DESCRIPTION files in the chapter 'Creating R
 packages' of the 'Writing R Extensions' manual.
 
 Why would you think that Enhances: is right here?
 
 If you use library or require on a package, you do more than enhance it,
 and the package should be listed in Depends or Suggests.

I might have understood Enhances field wrongly but imagine this
situation. I have a package A and if I can use package B I would like to
use it otherwise try with my own solution. I thought that Enhances
fields is exactly for such situation. How should I check if package B is
available? I used

if(require(B)) {
  someSuperDuperFuncFromPkgB()
} else {
  myOwnStuff()
}

But R CMD check complains.

I have encountered this with R2WinBUGS. This package helps calling
WinBUGS from R. It can also use OpenBUGS via BRugs, but BRugs is
available only for Windows. Therefore, one can not do any QC under
Linux. I thought to provide ability to call OpenBUGS via the same way
WinBUGS is called and then to put BRugs in Enhances field. But R CMD
check complained about use of require() for a package that is in
Enhanced field.

Thanks!

Gregor

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


[Rd] Conditional suggest (was Re: Enhances, require() and quality control)

2006-12-12 Thread Gregor Gorjanc
Kurt Hornik wrote:
 Gregor Gorjanc writes:
...
 I might have understood Enhances field wrongly but imagine this
 situation. I have a package A and if I can use package B I would like to
 use it otherwise try with my own solution. I thought that Enhances
 fields is exactly for such situation. How should I check if package B is
 available? I used
 
 if(require(B)) {
   someSuperDuperFuncFromPkgB()
 } else {
   myOwnStuff()
 }
 
 But R CMD check complains.
 
 I have encountered this with R2WinBUGS. This package helps calling
 WinBUGS from R. It can also use OpenBUGS via BRugs, but BRugs is
 available only for Windows. Therefore, one can not do any QC under
 Linux. I thought to provide ability to call OpenBUGS via the same way
 WinBUGS is called and then to put BRugs in Enhances field. But R CMD
 check complained about use of require() for a package that is in
 Enhanced field.
 
 This is not enhancing the way it is currently implemented, which is
 allowing for the possibility to provide S3 or S4 methods for classes
 from another package without actively suggesting it (thus enhancing
 it).  What you describe seems to be a need for conditionally suggesting
 packages, e.g. if it is known that these are only available on certain
 platforms.  I don't think this is currently possible.

OK. Is there some way to test which package is being used i.e. the
standard or enhanced one? Or to paraphrase this differently. Are there
any proposals how conditional suggest could be done?

Thanks!

Gregor

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


[Rd] Matplot does not work with x being POSIXt class (PR#9412)

2006-12-07 Thread gregor . gorjanc
Hi,

Matplot works with x being Date class but not POSIXt. Here is the
example with R version 2.5.0 Under development (unstable) (2006-12-06
r40129)

Example:

x - Sys.Date() - c(1:10)
y - cbind(1:10, 10:1)
class(x)
## [1] Date
matplot(x, y)

x - strptime(as.character(x), format=%Y-%m-%d)
## [1] POSIXt  POSIXlt
matplot(x, y)
Error in matplot(x, y) : 'x' and 'y' must have only 1 or the same number
of columns

Additionally, matplot with x being Date class does not use apropriate
annotation for x axis.

Thank you!

Gregor

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


Re: [Rd] R-devel: rownames of a data.frame

2006-12-06 Thread Gregor Gorjanc
Martin Maechler maechler at r-project.org writes:
...
 because  colnames() and rownames() work via dimnames(), and so do
  colnames- and rownames- ---  
 I think it would be unwise to change this, since it's well documented 
 property of these functions.
 
 As you noted yourself,  using  names() and names-
 i.e.,
   names(df1) - bla
 in the example above, is the recommended way for data frames and does not 
 change the rownames to character.

Thank you for this followup! It seems that I should have read the 
documentation more carefully. May I just suggest to add names in see also 
for row.names help page.

Regards, Gregor

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


[Rd] Enhances, require() and quality control

2006-12-06 Thread Gregor Gorjanc
Hello!

I am working on a package where Enhances field seems to be a plausible
option. When I add package, say coda, to this field, I get the following
warning with recent R-devel:



* checking for working latex ... OK
* using log directory '/home/ggorjan/programs/R/devel/test.Rcheck'
* using R version 2.5.0 Under development (unstable) (2006-12-06 r40129)
* checking for file 'test/DESCRIPTION' ... OK
* this is package 'test' version '0.1'
* checking package dependencies ... WARNING
'library' or 'require' calls not declared from:
  coda

See the information on DESCRIPTION files in the chapter 'Creating R
packages' of the 'Writing R Extensions' manual.



I have require(code) somewhere in the code. Is this OK or is R CMD check
to stringent in case of enhances field - I get no warning if that
package is in depends or suggests fields?

After a short look into src/library/tools/R/QC.R I think that the
following might be the solution. I did not do any other testing than
with my package, where R CMD check (R with proposed change) passed
without warnings.

Index: src/library/tools/R/QC.R
===
--- src/library/tools/R/QC.R(revision 40129)
+++ src/library/tools/R/QC.R(working copy)
@@ -3659,8 +3659,8 @@
 standard_package_names -
 .get_standard_package_names()$base %w/o% c(methods, stats4)
 depends_suggests - c(depends, suggests, pkg_name, contains,
-  standard_package_names)
-imports - c(imports, depends_suggests, enhances)
+  standard_package_names, enhances)
+imports - c(imports, depends_suggests)
 ## the first argument could be named, or could be a variable name.
 ## we just have a stop list here.
 common_names - c(pkg, pkgName, package, pos)

-- 
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] R 2.4.1 scheduled for December 18

2006-12-05 Thread Gregor Gorjanc
Gregor Gorjanc gregor.gorjanc at bfro.uni-lj.si writes:
 
 Hi!
 
 If I am not wrong issue described at
 
 http://thread.gmane.org/gmane.comp.lang.r.devel/9667/focus=9667
 
 did not get any attention. Thought it is true that using names() instead of
 colnames() does not change mode of data.frame rownames.
 
 This issues are also alive: 
 
 http://thread.gmane.org/gmane.comp.lang.r.devel/9837/focus=9837
 http://thread.gmane.org/gmane.comp.lang.r.devel/7540/focus=7540
 http://thread.gmane.org/gmane.comp.lang.r.devel/8513/focus=8518

This one also:

http://thread.gmane.org/gmane.comp.lang.r.devel/10723/focus=10723

Thanks!

Gregor

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


Re: [Rd] R 2.4.1 scheduled for December 18

2006-12-05 Thread Gregor Gorjanc
And small typo in postscript man page

Index: src/library/grDevices/man/postscript.Rd
===
--- src/library/grDevices/man/postscript.Rd (revision 40125)
+++ src/library/grDevices/man/postscript.Rd (working copy)
@@ -195,7 +195,7 @@
   using the \code{encoding} argument the glyphs can be matched to
   encoding in use.  This suffices for European and Cyrillic languages,
   but not for CJK languages.  For the latter, composite CID fonts are
-  used.  These fonts are be useful for other languages: for example they
+  used.  These fonts are useful for other languages: for example they
   may contain Greek glyphs. (The rest of this section applies only when CID
   fonts are not used.)

I will stop now;)

Gregor

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


Re: [Rd] R 2.4.1 scheduled for December 18

2006-12-03 Thread Gregor Gorjanc
Hi!

If I am not wrong issue described at

http://thread.gmane.org/gmane.comp.lang.r.devel/9667/focus=9667

did not get any attention. Thought it is true that using names() instead of
colnames() does not change mode of data.frame rownames.

This issues are also alive: 

http://thread.gmane.org/gmane.comp.lang.r.devel/9837/focus=9837
http://thread.gmane.org/gmane.comp.lang.r.devel/7540/focus=7540
http://thread.gmane.org/gmane.comp.lang.r.devel/8513/focus=8518

Thanks, Gregor

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


[Rd] Wish: add link to Date in date help page

2006-11-24 Thread Gregor Gorjanc
Hello!

Could someone add Date to see also links in date help page i.e. the
following code in ./src/library/base/man/date.Rd

\seealso{
  \code{\link{Sys.time}} and \code{\link{Date}}
}

I always fire ?date instead of ?Date and I guess a lot of useRs also get
lost in search for the right help pages about date-time classes.

Btw. Perhaps article from RNews about datetime classes by Gabor and
Thomas could also be added to all? date-time help pages. That article
really rocks and I guess it would help a lot to provide link from help
pages. This is not the first wish about this issue. I can provide
patches if this wish is accepted!

Thanks!

Gregor

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


[Rd] Typo in save help page

2006-11-16 Thread Gregor Gorjanc
Hi,

Save help page, section Warnings, last paragraph, 3rd row, 1st word in a
row:

conpatible
  ^

should be

compatible

Regards, Gregor

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


[Rd] c() for factors

2006-11-11 Thread Gregor Gorjanc
Dear R-core!

I have written a function mapLevels() to map levels of a factor. It can
produce a map (internally a list) of factor levels and internal integer
codes. I call this integer levelsMap. There is also character levelsMap,
but not of importance at this moment. I found out that it was quite
straightforward to write c() method for factors with use of mapLevels()
and Iam asking here if there is any interest to include this into base R.

In base R c() on two factors coerces to internal integer codes

 f1 - factor(c(A, B))
 f2 - factor(c(A, C))
 f1
[1] A B
Levels: A B
 f2
[1] A C
Levels: A C
 c(f1, f2)
[1] 1 2 1 2

or character vector if one of arguments is character

c(as.character(f1), f2)
[1] A B 1 2

this is OK, but not really wanted by the user. Code bellow show my
implementation of c.factor().

For the moment mapLevels() and c.factor() live in gdata package (from
version 2.3.1) - it has ben submitted to CRAN last night.

 install.packages(gdata)
 library(gdata)
## c.factor is not exported
 gdata:::c.factor(f1, f2)
[1] A B A C
Levels: A B C
 gdata:::c.factor(as.character(f1), f2)
[1] A B A C
Levels: A B C
 gdata:::c.factor(f1, as.character(f2))
[1] A B A C
Levels: A B C
 gdata:::c.factor(as.integer(f1), f2)
Error in mapLevels.default(X[[1]], ...) : mapLevels can only be used on
“factor” and “character” atomic 'x'

As can be seen characters are handled in the same way as factors. Does
anyone see any value in this?

-- 
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] How to put my S4 class into data.frame

2006-11-04 Thread Gregor Gorjanc
Hi,

Martin Maechler wrote:
 Gregor == Gregor Gorjanc [EMAIL PROTECTED]
 on Sat, 04 Nov 2006 02:09:13 +0100 writes:
 
 Gregor Ferdinand Alimadhi wrote:
 
tmp$comp - [EMAIL PROTECTED] ?!
 
 Gregor I lose class here and that is not what I
 Gregor want. Perhaps I should stick with list instead of
 Gregor data.frame.
 
 Yes, I probably would, at least for the time being.

OK. Why do you say at least for the time being? Are there any plans to
generalize putting S4 classes that are not atomic into data.frame?

 OTOH, it's interesting that some methods to stick some S4
 objects into a data frame do work fine , at least for the
 following case (R-script below) -- and I wonder if we (R developers)
 shouldn't think about more explicitly supporting this,
 e.g., by stating something like
 
If an S4 object simply *contains* an atomic class that can be
used as data.frame column, then that S4 object can also be used
as data.frame column
 

Gregor

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


Re: [Rd] How to put my S4 class into data.frame

2006-11-04 Thread Gregor Gorjanc
John Chambers wrote:
 Designing a better data frame is something many people have likely
 thought about; I certainly have.
 
 But data frames are so widely used and so central to models and other
 software that a major change needs to be done by the user community, or
 at least with maximum feedback, IMO.
 
 Also, my prior feeling would be that it's better to think of an S4 class
 to play the role of data.frame, rather than tinkering with the S3 class
 to allow S4 columns.  Having formal classes (particularly using class
 unions to abstract notions about variables in the data frame)  lets one
 create a more precise and reliable definition.
 
 It's true, though, that one then has to work out the details of
 interfacing the S4 data frame class to current software that works with
 the S3 data.frame class.  AFAICS that is not too hard, but of course the
 details would be important.
 
 I've played around with some of these ideas, more as educational aids in
 discussing classes and methods than as a serious proposal.  Last time I
 looked, the writeup was not at a level I would feel happy circulating
 :-}  But perhaps a group of interested people could exchange some ideas.

As far as I see this (at the risk of uterly simplifying the issue) new
data.frame (perhaps dataFrame) could just be a list? of classes that
have the same length i.e. length() should have the same value.

Gregor

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


Re: [Rd] How to put my class into data.frame

2006-11-03 Thread Gregor Gorjanc
Ferdinand Alimadhi wrote:
 tmp$comp - [EMAIL PROTECTED]   ?!

I lose class here and that is not what I want. Perhaps I should stick
with list instead of data.frame.

 Gregor Gorjanc wrote:
 
 Hello!

 I am developing a composition class, which represents a composition of
 mixture of levels, say soil has three components and each component
 accounts for 1/3 of the unit. I have tried with S4 class system and I
 would appreciate any help here. I was hoping that I would be able to
 include instance of my class into a data.frame. However, I encounter
 problems.

 Simple definition of class could be

 setClass(Class=composition,
 representation=representation(ratios=matrix))

 n - 2
 k - 3

 x - new(Class=composition, ratios=matrix(data=rep(x=1/3, times=n*k),
 nrow=n, ncol=k))

 x
 An object of class composition
 Slot ratios:
  [,1]  [,2]  [,3]
 [1,] 0.333 0.333 0.333
 [2,] 0.333 0.333 0.333

 tmp - data.frame(id=1:2)
 tmp$comp - x
 Error: object is not subsettable

 As I understand this, my problem is that x is of length 1 as the
 following works

 tmp$comp - c(x, x)

 although I am not able to print tmp now

 tmp
 Error in unlist(x, recursive, use.names) :
 argument not a list

 but this is expected as I (probably) need show/print method for this.
 How can I put my class into data.frame or how can I make my class behave
 as a vector?

 Thanks!

-- 
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] [R] read.fwf and header

2006-10-30 Thread Gregor Gorjanc
Marc Schwartz wrote:
 On Mon, 2006-10-30 at 19:51 +0100, Gregor Gorjanc wrote:
 Hi!

 I have data (also in attached file) in the following form:

 num1 num2 num3 int1 fac1 fac2 cha1 cha2 Date POSIXt
  11   f q   1900-01-01 1900-01-01 01:01:01
  2 1.0 131.5  2 a g r z1900-01-01 01:01:01
  3 1.5 1188830.5  3 b h s y 1900-01-01 1900-01-01 01:01:01
  4 2.0 1271846.3  4 c i t x 1900-01-01 1900-01-01 01:01:01
  5 2.5  829737.4d j u w 1900-01-01
  6 3.0 1240967.3  5 e k v v 1900-01-01 1900-01-01 01:01:01
  7 3.5  919684.4  6 f l w u 1900-01-01 1900-01-01 01:01:01
  8 4.0  968214.6  7 g m x t 1900-01-01 1900-01-01 01:01:01
  9 4.5 1232076.4  8 h n y s 1900-01-01 1900-01-01 01:01:01
 10 5.0 1141273.4  9 i o z r 1900-01-01 1900-01-01 01:01:01
5.5  988481.4 10 j q 1900-01-01 1900-01-01 01:01:01

 This is a FWF (fixed width format) file. I can not use read.table here,
 because of missing values. I have tried with the following

 read.fwf(file=test.txt, widths=c(3, 4, 10, 3, 2, 2, 2, 2, 11, 20),
 header=TRUE)

 Error in read.table(file = FILE, header = header, sep = sep, as.is =
 as.is,  :
  more columns than column names

 I could use:

 read.fwf(file=test.txt, widths=c(3, 4, 10, 3, 2, 2, 2, 2, 11, 20),
 header=FALSE, skip=1)
V1  V2V3 V4 V5 V6 V7 V8  V9 V10
 1   1  NANA  1f  q 1900-01-01  1900-01-01 01:01:01
 2   2 1.0 131.5  2 a  g  r  z  1900-01-01 01:01:01
 3   3 1.5 1188830.5  3 b  h  s  y  1900-01-01  1900-01-01 01:01:01
 4   4 2.0 1271846.3  4 c  i  t  x  1900-01-01  1900-01-01 01:01:01
 5   5 2.5  829737.4 NA d  j  u  w  1900-01-01
 6   6 3.0 1240967.3  5 e  k  v  v  1900-01-01  1900-01-01 01:01:01
 7   7 3.5  919684.4  6 f  l  w  u  1900-01-01  1900-01-01 01:01:01
 8   8 4.0  968214.6  7 g  m  x  t  1900-01-01  1900-01-01 01:01:01
 9   9 4.5 1232076.4  8 h  n  y  s  1900-01-01  1900-01-01 01:01:01
 10 10 5.0 1141273.4  9 i  o  z  r  1900-01-01  1900-01-01 01:01:01
 11 NA 5.5  988481.4 10 jq  1900-01-01  1900-01-01 01:01:01

 Does anyone have a clue, how to get above result with header?

 Thanks!
 
 The attachment did not come through. Perhaps it was too large?
 
 Not sure if this is the most efficient way, but how about this:
 
 DF - read.fwf(test.txt, 
 widths=c(3, 4, 10, 3, 2, 2, 2, 2, 11, 20),
 skip = 1, strip.white = TRUE,
 col.names = read.table(test.txt, 
nrow = 1, as.is = TRUE)[1, ])
 

Argh, my fault as I forgot to attach it :(

 Not sure if this is the most efficient way, but how about this:

 DF - read.fwf(test.txt,
 widths=c(3, 4, 10, 3, 2, 2, 2, 2, 11, 20),
 skip = 1, strip.white = TRUE,
 col.names = read.table(test.txt,
nrow = 1, as.is = TRUE)[1, ])


That is a very nice compromise! No need for [1, ], due to nrow=1.

 Of course, with the limited number of columns, you can always just set

 colnames(DF) - c(num1, num2, num3, int1, fac1,
   fac2, cha1, cha2, Date, POSIXt)


I fully agree here, but I kind of lack this directly in read.fwf. I hope
that someone from R-core is also listening to this ;)

Thank you!

Gregor
num1 num2 num3 int1 fac1 fac2 cha1 cha2 Date POSIXt
 11   f q   1900-01-01 1900-01-01 01:01:01
 2 1.0 131.5  2 a g r z1900-01-01 01:01:01
 3 1.5 1188830.5  3 b h s y 1900-01-01 1900-01-01 01:01:01
 4 2.0 1271846.3  4 c i t x 1900-01-01 1900-01-01 01:01:01
 5 2.5  829737.4d j u w 1900-01-01
 6 3.0 1240967.3  5 e k v v 1900-01-01 1900-01-01 01:01:01
 7 3.5  919684.4  6 f l w u 1900-01-01 1900-01-01 01:01:01
 8 4.0  968214.6  7 g m x t 1900-01-01 1900-01-01 01:01:01
 9 4.5 1232076.4  8 h n y s 1900-01-01 1900-01-01 01:01:01
10 5.0 1141273.4  9 i o z r 1900-01-01 1900-01-01 01:01:01
   5.5  988481.4 10 j q 1900-01-01 1900-01-01 01:01:01
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] na.encode in format for Date and POSIXt classes

2006-09-25 Thread Gregor Gorjanc
Hello!

na.encode does not have any effect on format of NA values of Date and
POSIXct (POSIXlt?) atomic classes in a data.frame. Here is the example
(the same in R 2.3.1 and 2.5.0 (2006-09-19 r39409)):

testData - data.frame(num=c(NA, 2.6),
   int=c(1, NA),
   fac=factor(c(NA, abc)),
   cha=c(a, NA),
   dat=as.Date(c(1900-1-1, NA)),
   POS=as.POSIXct(strptime(c(1900-1-1 01:01:01,
 NA),
  format=%Y-%m-%d %H:%M:%S)))
testData$cha - as.character(testData$cha)
testData
  num int  fac  chadat POS
1  NA   1 NAa 1900-01-01 1900-01-01 01:01:01
2 2.6  NA  abc NA   NANA

format(testData)
  num int fac chadat POS
1  NA   1  NA   a 1900-01-01 1900-01-01 01:01:01
2 2.6  NA abc  NA   NANA


format(testData, na.encode=FALSE)
  num int  fac  chadat POS
1  NA   1 NAa 1900-01-01 1900-01-01 01:01:01
2 2.6  NA  abc NA   NANA

format(testData, na.encode=TRUE)
  num int fac chadat POS
1  NA   1  NA   a 1900-01-01 1900-01-01 01:01:01
2 2.6  NA abc  NA   NANA


After a brief look into format.data.frame, format.POSIXct and
format.POSIXlt I notice that na.encode is not used at all in (last line
of format.POSIXlt)

 .Internal(format.POSIXlt(x, format, usetz))

but I get lost from this point forward. I guess that the same applies to
format.Date as this coerces Date to POSIXlt before formatting.

Additionally, I would suggest change in format help page for argument
na.encode. It says now

na.encode: logical: should 'NA' strings be encoded?

If I am not wrong, this applies only to non-numeric columns. Something
like the following might be more accurate:

na.encode: logical: should 'NA' strings be encoded (applies only to
non-numeric)?

-- 
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Wish: change behaviour of header in read.fwf (PR#9252)

2006-09-25 Thread gregor . gorjanc
Hello!

In my opinion read.fwf()'s behaviour of header is not really useful. Say
I have the following data:

col1  col2  col3
 123   123   123
   a   b
123412  1234
  65.4   4.5

Now if I want to read this data into R I can not use read.table due to
missing fields.

read.table(file=test.txt)
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines,
na.strings,  :
line 3 did not have 3 elements

However, read.fwf() can help me.

read.fwf(file=test.txt, widths=c(5, 6, 5))
 V1 V2V3
1 col1   col2   col3
2  123123123
3a b
4 1234 12   1234
565.44.5

Upps, I need to specify header and help page says that header fields
must be separated by sep. sep part of help page says

 sep: character; the separator used internally; should be a
  character that does not occur in the file (except in the
  header).

This is quite limiting because I never know in advance which characters
do not occur in a datafile and if I do, I have to  properly modify
header in the file before import. Naive use of read.fwf returns an error

read.fwf(file=test.txt, widths=c(5, 6, 5), header=TRUE, sep= )
Error in read.table(file = FILE, header = header, sep = sep, as.is =
as.is,  :
more columns than column names

read.fwf(file=test.txt, widths=c(5, 6, 5), header=TRUE, sep=  )
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines,
na.strings,  :
invalid 'sep' value: must be one byte

I get lost in reading source of read.fwf, but I think that the following
idea should be easy to implement and it would be also similar to
read.table behaviour.

ideaCode

if(header) {
  ## sep is from read.fwf call
  header - unlist(strsplit(readLines(con=file, n=1), split=sep))
}
...
## tweaks related to issues with length(header), row.names, ncol(), ...
read.table(..., col.names=header, ...)

/ideaCode

I know that FWF is not used much these days, but I would find proposed
change really useful.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc
--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Help for methods

2006-09-19 Thread Gregor Gorjanc
Hin-Tak Leung hin-tak.leung at cimr.cam.ac.uk writes:

 
 You are supposed to do:
 
 ?summary.lm
 ?summary.data.frame
 
 for S3 methods. The former works, the latter doesn't - which is
 probably considered a bug, but then the usage of some of the

I do not follow this. When I type ?summary.data.frame I get a
summary help page where I can also find info about S3 method for class
'data.frame'. If I am not wrong it is 

\alias{summary.data.frame}

that takes care of this.

 generics are probably considered obvious and fundamental enough
 that summary.data.frame doesn't really behave in any substantially
 different way compared to what is said in ?summary and ?Summary .
 
...

Regards, Gregor

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


Re: [Rd] Using \u2030 in plot axis label - stack smashing

2006-09-18 Thread Gregor Gorjanc
Gavin Simpson gavin.simpson at ucl.ac.uk writes:
 
 Dear List
 
 I just noticed the following behaviour in R 2.3.1 Patched (2006-06-13
 r38342) and confirmed similar behaviour in R 2.4.0 alpha (2006-09-18
 r39383)  R 2.5.0 (2006-09-18 r39383) - which may actually be the same
 thing?, that trying to plot the unicode character \u2030 (which should
 be in a ‰ [per mille] sign) in an axis label leads to the following
 error:
 
 *** stack smashing detected ***: /home/gavin/R/R-devel/build/bin/exec/R
 terminated
 Aborted
 
 The simplest, reproducible example I have tried is:
 
 plot(1:10, ylab = \u2030)
 

I can not reproduce this on my Debian GNU/Linux. I get something like S 
for y label under 2.3.1 2006-06-01 and 2.5.0 2006-09-13 r39292 with the
following locale

[1] LC_CTYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=en_GB.UTF-8;
LC_COLLATE=en_GB.UTF-8;LC_MONETARY=en_GB.UTF-8;LC_MESSAGES=en_GB.UTF-8;
LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;
LC_IDENTIFICATION=C

It does not change if I set everything into en_GB.UTF-8. Is this valid 
unicode code?

Gregor

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


Re: [Rd] Using \u2030 in plot axis label - stack smashing

2006-09-18 Thread Gregor Gorjanc
Gavin Simpson wrote:
 On Mon, 2006-09-18 at 19:02 +, Gregor Gorjanc wrote:
 Gavin Simpson gavin.simpson at ucl.ac.uk writes:
 Dear List

 I just noticed the following behaviour in R 2.3.1 Patched (2006-06-13
 r38342) and confirmed similar behaviour in R 2.4.0 alpha (2006-09-18
 r39383)  R 2.5.0 (2006-09-18 r39383) - which may actually be the same
 thing?, that trying to plot the unicode character \u2030 (which should
 be in a ‰ [per mille] sign) in an axis label leads to the following
 error:

 *** stack smashing detected ***: /home/gavin/R/R-devel/build/bin/exec/R
 terminated
 Aborted

 The simplest, reproducible example I have tried is:

 plot(1:10, ylab = \u2030)

 I can not reproduce this on my Debian GNU/Linux. I get something like S 
 for y label under 2.3.1 2006-06-01 and 2.5.0 2006-09-13 r39292 with the
 following locale

 [1] LC_CTYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=en_GB.UTF-8;
 LC_COLLATE=en_GB.UTF-8;LC_MONETARY=en_GB.UTF-8;LC_MESSAGES=en_GB.UTF-8;
 LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;
 LC_IDENTIFICATION=C

 It does not change if I set everything into en_GB.UTF-8. Is this valid 
 unicode code?

 Gregor
 
 Cheers for the follow up Gregor,
 
 I was following advice given by Prof. Ripley in a posting on R-Help
 about how to get the per mille character:
 
 http://finzi.psych.upenn.edu/R/Rhelp02a/archive/48709.html
 
 It should look like a % character but with two circles at the bottom.

Perhaps I do not have appropriate font for this character.

Gregor

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


[Rd] Error: package/namespace load failed for 'fortunes'

2006-09-13 Thread Gregor Gorjanc
Hello!

I have the following R code in my .Rprofile file - just for fun.

  library(fortunes)
  fortune()
  detach(package:fortunes)

This works nicely in R 2.3.1, but it throws the following error under
latest R-devel:

...
...
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

Error in rbind(rval, read.table(file, header = TRUE, sep = ;, quote =
\,  :
could not find function read.table
Error: .onLoad failed in 'loadNamespace' for 'fortunes'
Error: package/namespace load failed for 'fortunes'


If I start R-devel with empty .Rprofile I am able to issue above R code
without problems. Is this caused by move of read.table() to utils package?

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] [Fwd: Byte size in human readable format]

2006-09-13 Thread Gregor Gorjanc
Hello,

I have looked once more into this issue and used options() approach with
(yet another :() option - humanReadable. This is the behaviour in R-devel.

 object.size(1000)
[1] 32
 c(object.size(1000), object.size(1:1000), object.size(1:100))
[1]  324024 424
 options(humanReadable=TRUE)
 object.size(1000)
[1] 32 B
 c(object.size(1000), object.size(1:1000), object.size(1:100))
[1] 32 B 4 kB 4 MB

I am not very satisfied with the class approach I have taken as a lot of
functions in R drop class attribute, say

 sort(c(object.size(1:1000), object.size(1000)) )
[1]   32 4024

Is it possible to bypass this without writing special methods for byte
class. I would appreciate any comments, suggestion. Thanks!

Patches are available at:

http://www.bfro.uni-lj.si/MR/ggorjan/tmp/object.size.R.patch
http://www.bfro.uni-lj.si/MR/ggorjan/tmp/object.size.Rd.patch
http://www.bfro.uni-lj.si/MR/ggorjan/tmp/NAMESPACE.patch
http://www.bfro.uni-lj.si/MR/ggorjan/tmp/humanReadable.Rd

 Original Message 
Subject: Byte size in human readable format
Date: Mon, 21 Aug 2006 14:14:52 +0200
From: Gregor Gorjanc [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
Organization: University of Ljubljana
To: r-devel@r-project.org
CC: Ales Korosec [EMAIL PROTECTED]

Dear R-core,

My friend and I have written a function to convert byte size into human
readable format as can be done with -h argument in say ls, df or du
shell commands. I have also tried to wrap it with print method with
object.size. Is there any intereset to include such a function into say
utils package? Any additional comments, suggestions are more than welcome.

Function and its man page can be found at

http://www.bfro.uni-lj.si/MR/ggorjan/tmp/object.size.R
http://www.bfro.uni-lj.si/MR/ggorjan/tmp/humanReadable.Rd

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] R-devel: rownames of a data.frame

2006-09-13 Thread Gregor Gorjanc
Hello!

Data.frames have new rownames funcionality, however in use of colnames-
in R-devel changes this. Here is the example:

 df1 - data.frame(letters[1:5])
 attributes(df1)
$names
[1] letters.1.5.

$row.names
[1] 1 2 3 4 5

$class
[1] data.frame

 colnames(df1) - bla
 attributes(df1)
$names
[1] bla

$row.names
[1] 1 2 3 4 5

$class
[1] data.frame

?rownames/colnames help page (R-devel) says that value is coerced to
character, but why are rownames coerced to character if I assign
colnames to a data.frame?

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] R Citation through time

2006-09-12 Thread Gregor Gorjanc
Friedrich Leisch wrote:
 On Tue, 12 Sep 2006 07:53:52 +0200,
 Gregor Gorjanc (GG) wrote:
 
Hello!
I keep my local bib file and up to now I had entry
 
  @Manual{R:2003,
title = {R: A Language and Environment for Statistical Computing},
author = {{R Development Core Team}},
organization = {R Foundation for Statistical Computing},
address = {Vienna, Austria},
year = {2005},
note = {{ISBN} 3-900051-00-3},
url = {http://www.R-project.org},
  }
 
With recent versions ISBN changed to 3-900051-07-0.
 
 It changed with 2.0.0, which is not that recent ...
 
Now I wonder if there is any canonical way to refer to R without
the need to change R entry over and over. It would probably be the
best just to add new entry for new version for R. Now the
question is what is new version or when does ISBN number change?
 
 The ISBN changes with every major version of R, i.e., it will change
 next when 3.0.0 is released. We are already stretching the ISBN rules
 to the limit (on the no-change-side) with that policy, and the
 reason is exactly to make the reference more stable. But with a major
 release we really need to assign a new ISBN.

Thank you for this clarifications. As indicated ISBN is not changing
very often and I can live with couple of BibTeX entries for R.

Thanks!

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] R Citation through time

2006-09-12 Thread Gregor Gorjanc
Ioannis Dimakos wrote:
 Forgive me for being naive,
 
 but I have not seen any reference where the ISBN was required.  The apa
 style that I use does not require the ISBN.
 
 Best,
 
 Ioannis

You can put that part in note field as it is done in output of
citation() function.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] [-.POSIXlt changes order of attributes (PR#9197)

2006-09-02 Thread Gregor Gorjanc
Hello,

Prof Brian Ripley wrote:
 Please point us to the documentation that says attributes are ordered.
 E.g. R-lang.texi says
 
   All objects except @code{NULL} can have one or more attributes attached
   to them.  Attributes are stored as a list where all elements are named.
 
 (although in fact they are stored in a pairlist).
 
 I know of tens of functions that change the order of attributes, and 
 did look at teaching identical() that they are not ordered.  But 
 since they are stored as a pairlist, it would be quite expensive.

I agree that there is no need for attributes to be always in the same
order as this is tedious to achieve as you noted above, but identical()
seems to care about this.

 (Given that attributes seem to be growing in use, another internal storage 
 mechanism is becoming more appropriate.)

Which internal storage mechanism are you talking about here?

 BTW, all.equal() does not assume attributes are ordered.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] [-.POSIXlt changes order of attributes (PR#9197)

2006-09-02 Thread Gregor Gorjanc
Hello,

Prof Brian Ripley wrote:
 There is a bug in identical(), though:
 
 identical(pairlist(a=1, b=2), pairlist(a=1, aa=2))
 [1] TRUE
 identical(structure(pi, a=1, b=2), structure(pi,a=1, aa=2))
 [1] TRUE
 
 so identical() is not even looking at the names of the attributes but only 
 checking their values.  Oops 

Aha, so this is the problem then. Thank you for tracking down the problem!

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Wish: keep names in mapply() result

2006-08-31 Thread Gregor Gorjanc
Hello,

Charles Berry sent me (off-list) his proposal, which I find better
(after slight modification) than mine. I would say that proposed changes
make mapply even more consistent with (some) *apply* funcs in terms of
names. Patches to mapply.R and mapply.Rd are attached. I have runned
make check-all and it seems that there are no problems with this change.
I hope R core will find this worth to apply.

New behaviour without first ... as character:

l - list(a=1, b=2)
k - list(1)
mapply(FUN=+, l, k)
a b
2 3

mapply(FUN=+, l, k, USE.NAMES=FALSE)
[1] 2 3

mapply(FUN=+, l, k, SIMPLIFY=FALSE)
$a
[1] 2

$b
[1] 3

mapply(FUN=+, l, k, SIMPLIFY=FALSE, USE.NAMES=FALSE)
[[1]]
[1] 2

[[2]]
[1] 3

New behaviour with first ... as character _with_ names:

l - c(1, 2)
names(l) - c(a, b)
mapply(FUN=paste, l, k)
a b
1 1 2 1

mapply(FUN=paste, l, k, USE.NAMES=FALSE)
[1] 1 1 2 1

mapply(FUN=paste, l, k, SIMPLIFY=FALSE)
$a
[1] 1 1

$b
[1] 2 1

mapply(FUN=paste, l, k, SIMPLIFY=FALSE, USE.NAMES=FALSE)
[[1]]
[1] 1 1

[[2]]
[1] 2 1

New behaviour with first ... as character _without_ names:

l - c(1, 2)
mapply(FUN=paste, l, k)
1 2
1 1 2 1

mapply(FUN=paste, l, k, USE.NAMES=FALSE)
[1] 1 1 2 1

mapply(FUN=paste, l, k, SIMPLIFY=FALSE)
$`1`
[1] 1 1

$`2`
[1] 2 1

mapply(FUN=paste, l, k, SIMPLIFY=FALSE, USE.NAMES=FALSE)
[[1]]
[1] 1 1

[[2]]
[1] 2 1

Regards, Gregor

Gregor Gorjanc wrote:
 Hello!
 
 I have noticed that mapply() drops names in R 2.3.1 as well as in
 r-devel. Here is a simple example:
 
 l - list(a=1, b=2)
 k - list(1)
 mapply(FUN=+, l, k)
 [1] 2 3
 mapply(FUN=+, l, k, SIMPLIFY=FALSE)
 [[1]]
 [1] 2
 
 [[2]]
 [1] 3
 
 Help page does not indicate that this should happen. Argument USE.NAMES
 does not have any effect here as it used only in a bit special
 situation: If the first ... argument is character and the result does
 not already have names, use it as the names. But result is always
 without names as shown above. Did I miss any peculiarities?
 
 This is not consistent with lapply, which keeps names i.e.
 
 lapply(l, +, 1)
 $a
 [1] 2
 
 $b
 [1] 3
 
 I have attached and copied (at the end) patch proposal against SVN that
 adds names back to the result if x had it (only R as my C is ...). This
 way it would also be consistent with lapply. make check-all seems to be
 happy with changes. Now we get:
 
 mapply(FUN=+, l, k)
 a b
 2 3
 
 mapply(FUN=+, l, k, SIMPLIFY=FALSE)
 $a
 [1] 2
 
 $b
 [1] 3
 
 And if we had character (with some variations) for first ... then:
 
 l - list(a=1, b=2)
 mapply(FUN=paste, l, k)
 a b
 1 1 2 1
 
 l - list(1, 2)
 mapply(FUN=paste, l, k)
 [1] 1 1 2 1
 
 l - c(1, 2)
 mapply(FUN=paste, l, k)
 1 2
 1 1 2 1
 
 Index: src/library/base/R/mapply.R
 ===
 --- src/library/base/R/mapply.R (revision 39024)
 +++ src/library/base/R/mapply.R (working copy)
 @@ -3,8 +3,16 @@
  FUN - match.fun(FUN)
  dots - list(...)
 
 +if(!is.null(names(dots[[1]]))) {
 +isNamed - TRUE
 +namesX - names(dots[[1]])
 +} else {
 +isNamed - FALSE
 +}
 +
  answer-.Call(do_mapply, FUN, dots, MoreArgs, environment(),
PACKAGE=base)
 +if(isNamed) names(answer) - namesX
 
  if (USE.NAMES  length(dots)  is.character(dots[[1]]) 
  is.null(names(answer))) names(answer) - dots[[1]]
 @@ -47,4 +55,4 @@
  }
  formals(FUNV) - formals(FUN)
  FUNV
 -}
 \ No newline at end of file
 +}
 
 
 
 
 
 Index: src/library/base/R/mapply.R
 ===
 --- src/library/base/R/mapply.R   (revision 39024)
 +++ src/library/base/R/mapply.R   (working copy)
 @@ -3,8 +3,16 @@
  FUN - match.fun(FUN)
  dots - list(...)
  
 +if(!is.null(names(dots[[1]]))) {
 +isNamed - TRUE
 +namesX - names(dots[[1]])
 +} else {
 +isNamed - FALSE
 +}
 +
  answer-.Call(do_mapply, FUN, dots, MoreArgs, environment(),
PACKAGE=base)
 +if(isNamed) names(answer) - namesX
  
  if (USE.NAMES  length(dots)  is.character(dots[[1]]) 
  is.null(names(answer))) names(answer) - dots[[1]]
 @@ -47,4 +55,4 @@
  }
  formals(FUNV) - formals(FUN)
  FUNV
 -}
 \ No newline at end of file
 +}



mapply.R.patch.gz
Description: GNU Zip compressed data


mapply.Rd.patch.gz
Description: GNU Zip compressed data
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] Summary() fails after use of na.action=na.exclude in lm() (PR#9191)

2006-08-30 Thread gregor . gorjanc
Hello!

I have already reported on this behaviour at [1] and now I have checked
the same example on r-devel and the problem is still there. Thomas
Lumley inidicated problem [2]. Example:

n - 50
x - runif(n=n)
y1 - 2 * x + rnorm(n=n)
y2 - 5 * x + rnorm(n=n)
y2[sample(1:n, size=5)] - NA

y - cbind(y1, y2)

## Goes ok here
fit - lm(y1 ~ 1, na.action=na.exclude)
summary(fit)

## And here
fit - lm(y2 ~ 1, na.action=na.exclude)
summary(fit)

## But fails if we use matrix of response variables
fit - lm(y ~ 1, na.action=na.exclude)
summary(fit)

Response y1 :

Call:
lm(formula = y1 ~ 1, na.action = na.exclude)

Residuals:
Error in quantile.default(resid) : missing values and NaN's not allowed
if 'na.rm' is FALSE

[1]http://tolstoy.newcastle.edu.au/R/devel/06/07/6187.html
[2]http://tolstoy.newcastle.edu.au/R/devel/06/07/6203.html

--please do not edit the information below--

Version:
 platform = i686-pc-linux-gnu
 arch = i686
 os = linux-gnu
 system = i686, linux-gnu
 status = Under development (unstable)
 major = 2
 minor = 4.0
 year = 2006
 month = 08
 day = 30
 svn rev = 39022
 language = R
 version.string = R version 2.4.0 Under development (unstable)
(2006-08-30 r39022)

Locale:
LC_CTYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=en_GB.UTF-8;LC_COLLATE=en_GB.UTF-8;LC_MONETARY=en_GB.UTF-8;LC_MESSAGES=en_GB.UTF-8;LC_PAPER=en_GB.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_GB.UTF-8;LC_IDENTIFICATION=C

Search Path:
 .GlobalEnv, package:methods, package:stats, package:graphics,
package:grDevices, package:utils, package:datasets, Autoloads, package:base

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Wishlist: add mapply to lapply

2006-08-21 Thread Gregor Gorjanc
Hello!

mapply() could be added in see also section in lapply() help pages.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Byte size in human readable format

2006-08-21 Thread Gregor Gorjanc
Dear R-core,

My friend and I have written a function to convert byte size into human
readable format as can be done with -h argument in say ls, df or du
shell commands. I have also tried to wrap it with print method with
object.size. Is there any intereset to include such a function into say
utils package? Any additional comments, suggestions are more than welcome.

Function and its man page can be found at

http://www.bfro.uni-lj.si/MR/ggorjan/tmp/object.size.R
http://www.bfro.uni-lj.si/MR/ggorjan/tmp/humanReadable.Rd

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Small typo in list.Rd

2006-08-18 Thread Gregor Gorjanc
Hello!

There is a tiny typo in list.Rd.

Index: R/src/library/base/man/list.Rd
===
--- ../man/list.Rd  (revision 38909)
+++ ../man/list.Rd  (working copy)
@@ -59,7 +59,7 @@
   inconsistent with functions such as \code{\link{as.character}}, and is
   for efficiency since lists can be expensive to copy.)

-  \code{is.list} returns \code{TRUE} iff its argument
+  \code{is.list} returns \code{TRUE} if its argument

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Small typo in list.Rd

2006-08-18 Thread Gregor Gorjanc
Hin-Tak Leung wrote:
 Gregor Gorjanc wrote:
 Hello!

 There is a tiny typo in list.Rd.

 Index: R/src/library/base/man/list.Rd
 ===
 --- ../man/list.Rd  (revision 38909)
 +++ ../man/list.Rd  (working copy)
 @@ -59,7 +59,7 @@
inconsistent with functions such as \code{\link{as.character}}, and is
for efficiency since lists can be expensive to copy.)

 -  \code{is.list} returns \code{TRUE} iff its argument
 +  \code{is.list} returns \code{TRUE} if its argument

 
 Those are not typo's - (there are two iff's in that paragraph).
 iff is a short-hand for if and only if, in some culture.

OK, I did not know that and I appologize for making noise on the list
for this. However, I wonder how many people know this? It is fine to
have some short-hands (as IMHO, RTFM, etc. in e-mails), but these can be
an obstacle for exact understanding of the documentation, specially for
non-english users.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] unique.default() drops names (PR#9130)

2006-08-10 Thread Gregor Gorjanc
Seth Falcon sfalcon at fhcrc.org writes:
 I see value in unique() keeping names and from what I understand
 the documentation could be changed to match 
 
 I don't know if there are good reasons for dropping names from
 vectors.
 
 Given that unique is very commonly used, I think the way to make such
 a change is in the C code, not at the R level.  So in that sense, I
 think the patch you sent is not ideal.  Below is a patch to
 do_duplicated that keeps names.  Lightly tested.  No doc included.  I
 would consider more testing and doc if there was interest.
 
Thank you Seth for your time on this. I also think that there is value
in keeping names and I agree that C code is the best place to do the fix.

Gregor

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


Re: [Rd] unique.default() drops names (PR#9130)

2006-08-09 Thread Gregor Gorjanc
Prof Brian Ripley wrote:
 From the help page (?unique)
 
  Value:
 
  For a vector, an object of the same type of 'x', but with only one
  copy of each duplicated element.  No attributes are copied (so the
  result has no names).
 
 Please take your own advice and `learn by doing as you are asked in the 
 posting guide'.

Thank you for the reply! I appologize for not reading the latest
documentation - there was no word about droping names in 2.3.1. However,
I do wonder why simple fix (as shown in previous mail) is not OK.
Afterall, there is considerable variability on what unique methods drop
and what they preserve. Say:

* factor - keep all levels as in x
* data.frame - keep rownames (which are needed by default anyway)
* matrix - keep rownames as well as colnames

and I am perfectly fine with all these, I just wonder why names should
be dropped if x is atomic and not (rownames and colnames) if x is a
matrix, array or data.frame. Did I miss something or does addition of
names back to atomic x break existing code?

R x - c(1, 2, 3, 2)
R names(x) - 1:length(x)
R unique(x)
[1] 1 2 3
R y - matrix(x)
R colnames(y) - 1; rownames(y) - names(x)
R t(unique(y))
colnames(y) - 1; rownames(y) - names(x)

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Wishlist: multiple classes in \method{}{} (Rd markup) (PR#9135)

2006-08-09 Thread gregor . gorjanc
Hello!

I wish that one could use

\method{myMethod}{classA, classB}(x, arg1, arg2, arg3, ...)

instead of

\method{myMethod}{classA}(x, arg1, arg2, arg3, ...)
\method{myMethod}{classB}(x, arg1, arg2, arg3, ...)

when methods for both classA and classB have same set of arguments. This
way there would be a line or two less markup in Rd file as well as in
produced help page - one with note for both (or several classes) is more
than enough. This might also ease reading of help pages.

Thank you very much for such a great software!

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] unique.default() drops names (PR#9130)

2006-08-07 Thread Gregor . Gorjanc
Hello!

unique on a vector or list drops names, while it does not in case of
data.frames and matrix - rownames and colnames here, but they are 
intuitively the same as names. The following code shows this effect:

vecTest - c(A, D, B, D, A)
names(vecTest) - paste(name, vecTest, sep=)
unique(vecTest)

listTest - as.list(vecTest)
unique(listTest)

dfTest - data.frame(vecTest)
unique(dfTest)

matTest - as.matrix(vecTest)
colnames(matTest) - col1
unique(matTest)

I did not bump into .Internal(unique(x)), but the following change
(diff to latest SVN version) to unique.default seems to work. Is this 
acceptable?

Index: R/src/library/base/R/duplicated.R
===
--- R/src/library/base/R/duplicated.R   (revision 38809)
+++ R/src/library/base/R/duplicated.R   (working copy)
@@ -38,7 +38,12 @@
 {
 if(!is.logical(incomparables) || incomparables)
.NotYetUsed(incomparables != FALSE)
+if(!is.null(names(x))) {
+namesX - names(x)
+isNamed - TRUE
+}
 z - .Internal(unique(x))
+if(isNamed) names(z) - namesX[match(z, x)]
 if(is.factor(x))
factor(z, levels = seq(len=nlevels(x)), labels = levels(x),
ordered = is.ordered(x))

--please do not edit the information below--

Version:
 platform = i486-pc-linux-gnu
 arch = i486
 os = linux-gnu
 system = i486, linux-gnu
 status = 
 major = 2
 minor = 3.1
 year = 2006
 month = 06
 day = 01
 svn rev = 38247
 language = R
 version.string = Version 2.3.1 (2006-06-01)

Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical FacultyURI: http://www.bfro.uni-lj.si/MR/ggorjan
Zootechnical Department mail: gregor.gorjanc at bfro.uni-lj.si
Groblje 3   tel: +386 (0)1 72 17 861
SI-1230 Domzale fax: +386 (0)1 72 17 888
Slovenia, Europe
--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Making a patch

2006-07-25 Thread Gregor Gorjanc
Gregor Gorjanc gregor.gorjanc at bfro.uni-lj.si writes:

 
 Hi,
 
 Andrew Robinson A.Robinson at ms.unimelb.edu.au writes:
  
  Dear R developers,
  
  is there a preferred format or strategy for making a patch to
  contribute to a package that is maintained by R-core?  Berwin Turlach
...
 
 look at 
 
 http://article.gmane.org/gmane.comp.lang.r.devel/8858

Is there also any strategy in accepting patches in plain text or somehow
compressed format? The later due to line wrapping in some mailers, etc.

Thanks!

Gregor

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


Re: [Rd] RFC: Redefining length(POSIXlt) ?

2006-07-24 Thread Gregor Gorjanc
Hi,

Martin Maechler maechler at stat.math.ethz.ch writes:

 
 So I did open a new subject and move the discussion to R-devel
 now.
 
  MM == Martin Maechler maechler at stat.math.ethz.ch
  on Mon, 24 Jul 2006 11:46:05 +0200 writes:
 
Gabor == Gabor Grothendieck ggrothendieck at gmail.com
on Sun, 23 Jul 2006 09:02:35 -0400 writes:
 
   Gabor Looking at the diff.POSIXt code we see the problem is
   Gabor that it takes the length of the input using length
   Gabor which is wrong since in the case of POSIXlt the
   Gabor length is always 9 (or maybe length should be defined
   Gabor differently for POSIXlt?).
 
 MM Though I agree with Spencer that a user may expect
 MM length() to behave differently, but I don't think this
 MM would be a good idea.  Yes, length() is generic, but its
 MM help() emphasizes that for lists, length() should be the
 MM number of list elements.  Of course anyone one *can*
 MM define length() methods that behave differently for
 MM his/her classes, but then one would also want to make
 MM sure that e.g.  x[length(x)] or 'x[length(x)] - value'
 MM works and -- in a case of simple S3 class built on a
 MM list, would work differently than if x was a the simple list.

I think that having generic for POSIXlt would be more natural than default
length, which is (as stated by Gabor) always 9. When I see a date or time with
all additions I always think of it as one element. So it would be naturaly
that length() would return number of dates/times in POSIXlt object.

Gregor

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


Re: [Rd] Package Unit Testing

2006-07-24 Thread Gregor Gorjanc
Martin Maechler maechler at stat.math.ethz.ch writes:

 
  miguel == miguel manese jjonphl at gmail.com
  on Mon, 3 Jul 2006 09:43:12 +0800 writes:
 
 miguel Hello, Do we have like an official unit testing
 miguel framework for packages? Like we do R CMD check, and
 miguel say the scripts in pkg/test are executed? 
 
 yes.  Just it's  ./tests,  not './test'.
 
 More specifically, all ./tests/*.R are executed and for those
 foobar.R for which there's a  foobar.Rout.save  file,
 the output is (R CMD Rdiff)ed agains the result of running foobar.R
 
 All this should be pretty obvious from the manual
 Writing R Extensions.  
 What was it in there that was not clear enough?

I just tried to find relevant information and searched the whole Writing R
Extensions manual on word test. I have find information Martin stated above,
but failed to find how *.Rout.save should be created. I think that manual 
should say that. Did I miss something obvious? I am also not able to find 
Rdiff COMMAND in man page of R under Debian.

Browsing a bit in sources reveals that *.Rout.save is copy of R session
(starts with welcome text and later one code and output is there).
But how does one generate such a file? Additionally, does testing also 
test the first welcome text - different version of R haave a bit different
welcome text and that should be an error then or ...

Thanks!

Gregor

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


Re: [Rd] Making a patch

2006-07-23 Thread Gregor Gorjanc
Hi,

Andrew Robinson A.Robinson at ms.unimelb.edu.au writes:
 
 Dear R developers,
 
 is there a preferred format or strategy for making a patch to
 contribute to a package that is maintained by R-core?  Berwin Turlach
 and I have written a very minor extension to lmeControl to allow it to
 pass an argument to nlminb for the maximum number of evaluations of
 the objective function.  I've edited the nlme/R/lme.R and
 nlme/man/lmeControl.Rd files.  I can diff the files, but the options
 seem numerous.  I haven't been able to find any hinst on the preferred
 approach.  Any advice would be welcomed.
 

look at 

http://article.gmane.org/gmane.comp.lang.r.devel/8858

perhaps this (with modifications if necesarry) could be added to developer page 

http://developer.r-project.org/

Afterall, there is a good guide on posting mails to r-mailing lists and it would
be good to have the same for pacthes.

Gregor

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


[Rd] Bug?: summary() fails after use of na.action=na.exclude in lm()

2006-07-19 Thread Gregor Gorjanc
Hello!

I have encountered a weird problem and I am wondering if this is a bug.
Here is the example:

n - 50
x - runif(n=n)
y1 - 2 * x + rnorm(n=n)
y2 - 5 * x + rnorm(n=n)
y2[sample(1:n, size=5)] - NA

y - cbind(y1, y2)

fit - lm(y1 ~ 1, na.action=na.exclude)
summary(fit)

## Goes ok here
fit - lm(y2 ~ 1, na.action=na.exclude)
summary(fit)

## But fails if we use matrix of response variables
fit - lm(y ~ 1, na.action=na.exclude)
summary(fit)

## Response y1 :
##
## Call:
## lm(formula = y1 ~ 1, na.action = na.exclude)
##
## Residuals:
## Error in quantile.default(resid) : missing values and NaN's not
allowed if 'na.rm' is FALSE

Am I doing something wrong here?

--

Btw. man page of lm says (in the begining of the details):

A typical model has the form 'response ~ terms' where 'response' is the
(numeric) response vector ...
   ^^

Should not this part say that repsponse can also be a matrix?

Thanks

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Test for argument in ...

2006-07-02 Thread Gregor Gorjanc
Yes, this works.

Thanks Gabor!

Gabor Grothendieck wrote:
 That's because you are passing the argument twice.  Try this:
 
 foo1 - function(x, ...)
 + {
 +  L - list(...)
 +  if (is.null(L$decreasing)) L$decreasing - TRUE
 +  do.call(order, c(list(x), L))
 + }

 foo1(c(5, 2, 3, 4), decreasing=FALSE)
 [1] 2 3 4 1

 
 On 7/1/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
 Hi,

 Gabor Grothendieck wrote:
  Try this:
 
  f - function(...) if (!is.null(list(...)$arg1)) cat(arg1 found\n)
  else cat(arg1 not found\n)
  f(arg1 = 3)
  arg1 found
  f(arg2 = 3)
  arg1 not found

 Actually it is not OK. Bellow is simplified example that shows, what I
 would like to do:

 foo1 - function(x, ...)
 {
  if(is.null(list(...)$decreasing)) {
decreasing - TRUE
  } else {
decreasing - list(...)$decreasing
  }
  return(order(x, ..., decreasing=decreasing))
 }

  foo1(c(5, 2, 3, 4))
 [1] 1 4 3 2

 foo1(c(5, 2, 3, 4), decreasing=FALSE)
 Error in order(x, ..., decreasing = decreasing) :
formal argument decreasing matched by multiple actual arguments

  On 7/1/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
  Hello!
 
  Say I have a function foo1, which has argument ... to pass various
  arguments to foo2 i.e.
 
  foo1 - function(x, ...)
  {
   foo2(x, ...)
  }
 
  Say that foo2 accepts argument arg1 and I would like to do the
 following:
  - if foo1 is called as foo1(x) then I would like to assign some
 value to
  arg1 inside foo1 before calling foo2
 
  arg1 - some value
  foo2(x, arg1=arg1)
 
  - if foo1 is called foo1(arg1=some other value) do not assign some
  value to arg1 and call foo2
 
  foo2(arg1=arg1)
 
  However, I am not able to do this since I do not know how to
 test/check
  if arg1 was given in foo1. Is it possible to test whether some
 argument
  was passed in ... i.e. something like
 
  foo1 - function(x, ...)
  {
   if(testForArgumentInThreeDots(arg1)) arg1 - some value
   foo2(x, arg1=arg1, ...)
  }
 
  Thanks!

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Test for argument in ...

2006-07-02 Thread Gregor Gorjanc
Bill Dunlap wrote:
 On Sun, 2 Jul 2006, Gregor Gorjanc wrote:
 
 Yes, this works.

 Thanks Gabor!

 Gabor Grothendieck wrote:
 That's because you are passing the argument twice.  Try this:

 foo1 - function(x, ...)
 + {
 +  L - list(...)
 +  if (is.null(L$decreasing)) L$decreasing - TRUE
 +  do.call(order, c(list(x), L))
 + }
 foo1(c(5, 2, 3, 4), decreasing=FALSE)
 [1] 2 3 4 1
 
 How does this differ from
foo2 - function(x, ..., decreasing=TRUE)
   order(x, ..., decreasing = decreasing)
 ?

I agree, but I wanted to learn ... argument in a more general way. That
was just an example - not a good one as you have showed.

 x-c(5,2,3,4)
 identical(foo2(x), foo1(x))
 [1] TRUE
 identical(foo2(x,decreasing=F), foo1(x,decreasing=F))
 [1] TRUE
 identical(foo2(x,decreasing=T), foo1(x,decreasing=T))
 [1] TRUE

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Test for argument in ...

2006-07-01 Thread Gregor Gorjanc
Hello!

Say I have a function foo1, which has argument ... to pass various
arguments to foo2 i.e.

foo1 - function(x, ...)
{
  foo2(x, ...)
}

Say that foo2 accepts argument arg1 and I would like to do the following:
- if foo1 is called as foo1(x) then I would like to assign some value to
arg1 inside foo1 before calling foo2

arg1 - some value
foo2(x, arg1=arg1)

- if foo1 is called foo1(arg1=some other value) do not assign some
value to arg1 and call foo2

foo2(arg1=arg1)

However, I am not able to do this since I do not know how to test/check
if arg1 was given in foo1. Is it possible to test whether some argument
was passed in ... i.e. something like

foo1 - function(x, ...)
{
  if(testForArgumentInThreeDots(arg1)) arg1 - some value
  foo2(x, arg1=arg1, ...)
}

Thanks!

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Test for argument in ...

2006-07-01 Thread Gregor Gorjanc
Gabor Grothendieck wrote:
 Try this:
 
 f - function(...) if (!is.null(list(...)$arg1)) cat(arg1 found\n)
 else cat(arg1 not found\n)
 f(arg1 = 3)
 arg1 found
 f(arg2 = 3)
 arg1 not found

Thanks!

Use of list(...) really helps me here.

 On 7/1/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
 Hello!

 Say I have a function foo1, which has argument ... to pass various
 arguments to foo2 i.e.

 foo1 - function(x, ...)
 {
  foo2(x, ...)
 }

 Say that foo2 accepts argument arg1 and I would like to do the following:
 - if foo1 is called as foo1(x) then I would like to assign some value to
 arg1 inside foo1 before calling foo2

 arg1 - some value
 foo2(x, arg1=arg1)

 - if foo1 is called foo1(arg1=some other value) do not assign some
 value to arg1 and call foo2

 foo2(arg1=arg1)

 However, I am not able to do this since I do not know how to test/check
 if arg1 was given in foo1. Is it possible to test whether some argument
 was passed in ... i.e. something like

 foo1 - function(x, ...)
 {
  if(testForArgumentInThreeDots(arg1)) arg1 - some value
  foo2(x, arg1=arg1, ...)
 }

 Thanks!

 -- 
 Lep pozdrav / With regards,
Gregor Gorjanc

 --
 University of Ljubljana PhD student
 Biotechnical Faculty
 Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
 Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

 SI-1230 Domzale tel: +386 (0)1 72 17 861
 Slovenia, Europefax: +386 (0)1 72 17 888

 --
 One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.

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



-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Test for argument in ...

2006-07-01 Thread Gregor Gorjanc
Hi,

Gabor Grothendieck wrote:
 Try this:
 
 f - function(...) if (!is.null(list(...)$arg1)) cat(arg1 found\n)
 else cat(arg1 not found\n)
 f(arg1 = 3)
 arg1 found
 f(arg2 = 3)
 arg1 not found

Actually it is not OK. Bellow is simplified example that shows, what I
would like to do:

foo1 - function(x, ...)
{
  if(is.null(list(...)$decreasing)) {
decreasing - TRUE
  } else {
decreasing - list(...)$decreasing
  }
  return(order(x, ..., decreasing=decreasing))
}

 foo1(c(5, 2, 3, 4))
[1] 1 4 3 2

foo1(c(5, 2, 3, 4), decreasing=FALSE)
Error in order(x, ..., decreasing = decreasing) :
formal argument decreasing matched by multiple actual arguments

 On 7/1/06, Gregor Gorjanc [EMAIL PROTECTED] wrote:
 Hello!

 Say I have a function foo1, which has argument ... to pass various
 arguments to foo2 i.e.

 foo1 - function(x, ...)
 {
  foo2(x, ...)
 }

 Say that foo2 accepts argument arg1 and I would like to do the following:
 - if foo1 is called as foo1(x) then I would like to assign some value to
 arg1 inside foo1 before calling foo2

 arg1 - some value
 foo2(x, arg1=arg1)

 - if foo1 is called foo1(arg1=some other value) do not assign some
 value to arg1 and call foo2

 foo2(arg1=arg1)

 However, I am not able to do this since I do not know how to test/check
 if arg1 was given in foo1. Is it possible to test whether some argument
 was passed in ... i.e. something like

 foo1 - function(x, ...)
 {
  if(testForArgumentInThreeDots(arg1)) arg1 - some value
  foo2(x, arg1=arg1, ...)
 }

 Thanks!

 -- 
 Lep pozdrav / With regards,
Gregor Gorjanc

 --
 University of Ljubljana PhD student
 Biotechnical Faculty
 Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
 Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

 SI-1230 Domzale tel: +386 (0)1 72 17 861
 Slovenia, Europefax: +386 (0)1 72 17 888

 --
 One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.

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



-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Wish/suggestion: add output of citation() to package manuals (PR#9009)

2006-06-20 Thread gregor . gorjanc
Dear R core,

influenced by recent panel discussion in Vienna I think that it would be
nice to add package specific output of citation() function to package
reference manuals. I think that apropriate place would be just after
fields from DESCRIPTION file. This will be OK for CRAN, but not for
locally installed packages as there is not reference manual there (at
least on my linux box) - why is this the case? Perhaps output of
citation() could be added to package specific help page i.e. to
mypackage.package.Rd file.

The same could be done with R's manuals. I know that there is an entry
in FAQ on this and that there is a note after launching R, but questions
about apropriate reference on R-help list are quite frequent. Perhaps
this is so due to the habit that one looks into the paper/book/manual
about relevant information for reference.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] separators in data()

2006-06-15 Thread Gregor Gorjanc
Ben,

you confused read.csv and read.csv2. Separator in read.csv is ,, while
it is ; in read.csv2. This is due to use of different decimal symbols
in some european languages - mine is one of them  and I really hate
this. So the situation is:

  decimal separator
english   .   ,
some european lang.   ,   ;

There is then of course also a need to handle decimal separator and this
is done in read.csv2.

   just out of curiosity:
 
   why is the default behavior in data() for reading in .csv files
 to use sep=; (semicolon rather than comma)?  is this a historical
 artifact of some sort, or is there other logic to it?  It caught
 me by surprise since I was expecting it to be sep=, as in
 read.csv() ...
 
   cheers
 Ben Bolker


-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] Wish: Add fill argument to warning and stop (PR#8823)

2006-04-30 Thread gregor . gorjanc
Full_Name: Gregor Gorjanc
Version: R 2.2.1
OS: Linux
Submission from: (NULL) (82.192.44.229)


Hello!

It would be nice if warning() and stop() would have fill argument as it is in
cat().

Thanks!
 _
platform i486-pc-linux-gnu
arch i486
os   linux-gnu
system   i486, linux-gnu
status
major2
minor2.1
year 2005
month12
day  20
svn rev  36812
language R

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


[Rd] Example in ?order

2006-04-10 Thread Gregor Gorjanc
Hello!

On R Version 2.2.1  (2005-12-20 r36812) and in SVN

The following part of the example in ?order says

 ## For character vectors we can make use of rank:
 cy - as.character(y)
 rbind(x,y,z)[, order(x, -rank(y), z)]

But cy is not used in there.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] [Fwd: Re: levels for list and data.frame]

2006-03-21 Thread Gregor Gorjanc
I unintentionally missed to cc to r-devel.

 Original Message 
Subject: Re: [Rd] levels for list and data.frame
Date: Tue, 21 Mar 2006 20:50:21 +0100
From: Gregor Gorjanc [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: Martin Maechler [EMAIL PROTECTED]
References: [EMAIL PROTECTED]
[EMAIL PROTECTED]

Martin Maechler wrote:
 Hi Gregor,
 
 before even considering methods for list and data.frame,
 can you explain why you think it is important for  levels() to
 become a generic function at all?
 For me, levels belong to factors (or then to contour plots, or
 co-plots ) but exactly because level is a too generic word, it
 seems to me to be problematic as a generic function.
 
 How would describe the purpose of the levels() generic?
 

You are right. I was in situation where I wanted to get levels from all
entries (factors) of a list and considered to write a method for this
instead of always using lapply(). It went quite smoothly, if I skip R
CMD check error. After that I began to think and post a question to
R-devel. Perhaps levels is really to generic, however one can set levels
also for non-factors. Although, I agree that this is of no use. I was
also playing with levels- and find it quite hard to do something
general and usable for lists and data.frame.

If we put levels aside, is there any opinion/policy about list,
data.frame methods? Just curiosity.

 
Gregor == Gregor Gorjanc [EMAIL PROTECTED]
on Mon, 20 Mar 2006 23:27:21 +0100 writes:
 
 
 Gregor oops, this does not pass R CMD check. I will have to read manuals 
 a bit
 Gregor more.
 
 Gregor ...
 Gregor * checking S3 generic/method consistency ... WARNING
 Gregor levels:
 Gregor function(x, ...)
 Gregor levels.list:
 Gregor function(x, drop)
 
 Gregor levels:
 Gregor function(x, ...)
 Gregor levels.data.frame:
 Gregor function(x, drop)
 Gregor ...
 
 Gregor Anyway, I would like to ask what is the opinion about writing 
 methods
 Gregor for classes as list and data.frame. Methods for this might not be 
 as
 Gregor simple as for numeric, character, factor and it would be nice 
 that there
 Gregor would be some guidelines for at least:
 Gregor - what should be the general output i.e. list or something else 
 - I
 Gregor understand that it is hard to say in advance, but a common policy 
 might
 Gregor not hurt
 Gregor - what to do if a method for a list or data.frame can not be 
 applied to
 Gregor each entry/column
 
 
  Hello!
  
  Does R core find the following pacth usefull - I created methods for
  levels for list and data.frame, which can be usefull to get a list of
  levels for entries in a list or columns in a data.frame. Patch is
  attached and shown bellow example
  
  # Example
  tmp - list()
  tmp$a - factor(letters[1:10])
  tmp$b - factor(letters[5:14])
  tmp$c - 1:10
  tmp1 - as.data.frame(tmp)
  tmp2 - list()
  tmp2$1 - tmp
  tmp2$2 - tmp1
  str(tmp2)
  List of 2
  $ 1:List of 3
  ..$ a: Factor w/ 10 levels a,b,c,d,..: 1 2 3 4 5 6 7 8 9 10
  ..$ b: Factor w/ 10 levels e,f,g,h,..: 1 2 3 4 5 6 7 8 9 10
  ..$ c: int [1:10] 1 2 3 4 5 6 7 8 9 10
  $ 2:`data.frame':  10 obs. of  3 variables:
  ..$ a: Factor w/ 10 levels a,b,c,d,..: 1 2 3 4 5 6 7 8 9 10
  ..$ b: Factor w/ 10 levels e,f,g,h,..: 1 2 3 4 5 6 7 8 9 10
  ..$ c: int [1:10] 1 2 3 4 5 6 7 8 9 10
  
  levels(tmp2)
  $1
  $1$a
  [1] a b c d e f g h i j
  
  $1$b
  [1] e f g h i j k l m n
  
  
  $2
  $2$a
  [1] a b c d e f g h i j
  
  $2$b
  [1] e f g h i j k l m n
  
  levels(tmp2, drop = FALSE)
  $1
  $1$a
  [1] a b c d e f g h i j
  
  $1$b
  [1] e f g h i j k l m n
  
  $1$c
  NULL
  
  
  $2
  $2$a
  [1] a b c d e f g h i j
  
  $2$b
  [1] e f g h i j k l m n
  
  $2$c
  NULL
  
  --
  
  $ svn diff factor.R
  Index: factor.R
  ===
  --- factor.R(revision 37559)
  +++ factor.R(working copy)
  @@ -25,7 +25,25 @@
  ## Help old S users:
  category - function(...) .Defunct()
  
  -levels - function(x) attr(x, levels)
  +levels - function(x, ...) UseMethod(levels)
  +
  +levels.default - function(x, ...) attr(x, levels)
  +
  +levels.list - function(x, drop = TRUE)
  +{
  +tmp - lapply(x, levels, drop = drop)
  +if (drop) {
  +tmp1 - unlist(lapply(tmp, is.null))
  +tmp - tmp[!tmp1]
  +}
  +return(tmp)
  +}
  +
  +levels.data.frame - function(x, ...)
  +{
  +return(levels.list(x, ...))
  +}
  +
  nlevels - function(x) length

Re: [Rd] levels for list and data.frame

2006-03-21 Thread Gregor Gorjanc
Martin Maechler wrote:
Gregor == Gregor Gorjanc [EMAIL PROTECTED]
on Tue, 21 Mar 2006 20:50:21 +0100 writes:
 
 
 Gregor Martin Maechler wrote:
  Hi Gregor,
  
  before even considering methods for list and
  data.frame, can you explain why you think it is
  important for levels() to become a generic function at
  all?  For me, levels belong to factors (or then to
  contour plots, or co-plots ) but exactly because level is
  a too generic word, it seems to me to be problematic as a
  generic function.
  
  How would describe the purpose of the levels() generic?
  
 
 Gregor You are right. I was in situation where I wanted to
 Gregor get levels from all entries (factors) of a list and
 Gregor considered to write a method for this instead of
 Gregor always using lapply(). It went quite smoothly, if I
 Gregor skip R CMD check error. After that I began to think
 Gregor and post a question to R-devel. Perhaps levels is
 Gregor really to generic, however one can set levels also
 Gregor for non-factors. Although, I agree that this is of
 Gregor no use. I was also playing with levels- and find it
 Gregor quite hard to do something general and usable for
 Gregor lists and data.frame.
 
 Gregor If we put levels aside, is there any opinion/policy
 Gregor about list, data.frame methods? Just curiosity.
 
 I don't understand the question.  Do you mean the question if
 methods should be written for list or for data.frame (which
 inherit from list)?

Yes.

 But in any case, can you please take this back to R-devel?
 It has started there, and people should be able to see the
 continuation / conclusion.
 

Hmm, replay all to your mail does not include r-devel, weird. Done.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] levels for list and data.frame

2006-03-20 Thread Gregor Gorjanc
Hello!

Does R core find the following pacth usefull - I created methods for
levels for list and data.frame, which can be usefull to get a list of
levels for entries in a list or columns in a data.frame. Patch is
attached and shown bellow example

# Example
 tmp - list()
 tmp$a - factor(letters[1:10])
 tmp$b - factor(letters[5:14])
 tmp$c - 1:10
 tmp1 - as.data.frame(tmp)
 tmp2 - list()
 tmp2$1 - tmp
 tmp2$2 - tmp1
 str(tmp2)
List of 2
 $ 1:List of 3
  ..$ a: Factor w/ 10 levels a,b,c,d,..: 1 2 3 4 5 6 7 8 9 10
  ..$ b: Factor w/ 10 levels e,f,g,h,..: 1 2 3 4 5 6 7 8 9 10
  ..$ c: int [1:10] 1 2 3 4 5 6 7 8 9 10
 $ 2:`data.frame':  10 obs. of  3 variables:
  ..$ a: Factor w/ 10 levels a,b,c,d,..: 1 2 3 4 5 6 7 8 9 10
  ..$ b: Factor w/ 10 levels e,f,g,h,..: 1 2 3 4 5 6 7 8 9 10
  ..$ c: int [1:10] 1 2 3 4 5 6 7 8 9 10

 levels(tmp2)
$1
$1$a
 [1] a b c d e f g h i j

$1$b
 [1] e f g h i j k l m n


$2
$2$a
 [1] a b c d e f g h i j

$2$b
 [1] e f g h i j k l m n

 levels(tmp2, drop = FALSE)
$1
$1$a
 [1] a b c d e f g h i j

$1$b
 [1] e f g h i j k l m n

$1$c
NULL


$2
$2$a
 [1] a b c d e f g h i j

$2$b
 [1] e f g h i j k l m n

$2$c
NULL

--

$ svn diff factor.R
Index: factor.R
===
--- factor.R(revision 37559)
+++ factor.R(working copy)
@@ -25,7 +25,25 @@
 ## Help old S users:
 category - function(...) .Defunct()

-levels - function(x) attr(x, levels)
+levels - function(x, ...) UseMethod(levels)
+
+levels.default - function(x, ...) attr(x, levels)
+
+levels.list - function(x, drop = TRUE)
+{
+tmp - lapply(x, levels, drop = drop)
+if (drop) {
+tmp1 - unlist(lapply(tmp, is.null))
+tmp - tmp[!tmp1]
+}
+return(tmp)
+}
+
+levels.data.frame - function(x, ...)
+{
+return(levels.list(x, ...))
+}
+
 nlevels - function(x) length(levels(x))

 levels- - function(x, value) UseMethod(levels-)

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.
--


factor.R.diff.gz
Description: GNU Zip compressed data
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] [R] Collapsing levels of a factor

2006-03-19 Thread Gregor Gorjanc
 x - factor(1:3, labels = c(b , f, minus))
 x
 [1] b f minus
 Levels: b f minus
 
 I want to change all minus to b. I know that the simplest way to do this 
 is
 
 levels(x)  - c(b, f, b)
 
 and also that
 
  x[x == minus] - b
 x - factor(x)
 
 works. But why not
 
 x - ifelse(x == minus, b, x)
 x - factor(x)
 x
 [1] 1 2 b
 Levels: 1 2 b
 

I find particulary usefull the list approach. Here is the example from
levels help page. I like this approach, since you can modify list and
apply it to a factor via levels.

  ## we can add levels this way:
 f - factor(c(a,b))
 levels(f) - c(c, a, b)
 f

 f - factor(c(a,b))
 levels(f) - list(C=C, A=a, B=b)
 f

I was playing around this last week and wrote a simple function[1],
which can save you some work in getting such a list from a factor. Is R
core interested in it?

[1]http://www.bfro.uni-lj.si/MR/ggorjan/software/R/ggmisc/factorMap.R

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Undocumented argument na.last in factor()

2006-03-14 Thread Gregor Gorjanc
Martin Maechler wrote:
Gregor == Gregor Gorjanc [EMAIL PROTECTED]
on Tue, 14 Mar 2006 09:58:22 +0100 writes:
 
 
 Gregor Hello!  I just noticed that argument na.last in
 Gregor factor() is not documented. Did I miss something or
 Gregor ...? I just wonder how base package passes then R
 Gregor CMD check. I checked also in source man page in
 Gregor R-devel.
 
 I wondered too -- for a few moments only -- after reading your
 message...
 
 *BUT*  na.last  is *not* an argument to factor()!
 
 Look more carefully  at   str(factor)  or args(factor)
 (or the help page) !

Argh, yes you are right. Argument na.last is for sort for levels. I
apologize for this.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Internal codes of the factor

2006-03-14 Thread Gregor Gorjanc
Berwin A Turlach wrote:
 G'day Gregor,
 
 
GG == Gregor Gorjanc [EMAIL PROTECTED] writes:
 
 
 GG I am writing some functions and I repeatedly acces internal
 GG factor codes. I figured out that internal codes are 1:n where
 GG 1 represents 1st level, 2 2nd level etc. This is not
 GG documented [...]
 The help page for factor states in the 'Details' section:
 
  The encoding of the vector happens as follows. First all the
  values in 'exclude' are removed from 'levels'. If 'x[i]' equals
  'levels[j]', then the 'i'-th element of the result is 'j'.  If no
  match is found for 'x[i]' in 'levels', then the 'i'-th element of
  the result is set to 'NA'.
 
 Note in particular the part on then the 'i'-th element of the result
 is 'j'.  This pretty much documents that the internal codes are 1:n
 and 'NA', as documented in the following sentence.

Thanks for this pointer to documentation.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] NaN in R distribution functions

2005-12-29 Thread Gregor Gorjanc
Prof Brian Ripley wrote:
 On Wed, 28 Dec 2005, Gregor Gorjanc wrote:
 
 Dear R developers,

 I noticed that core R distribution functions return NaN, when parameter
 values are out of parameter space. I have looked in source code and
 found that warnings and return of NaN are done internally in C code. For
 dgamma.c the line 49 is:

 if (shape = 0 || scale = 0) ML_ERR_return_NAN;

 OK. How should this be implemented if distribution functions are written
 directly in R? I came up with this

 if (any(shape = 0)) {
 warning(shape must be positive)
 return(NaN)
 }
 
 
 As the R-level code is vectorized, NaN is unlikely to be the appropriate 
 return value. You will find that only the relevant entries are NaN, for 
 example
 
 dgamma(1, shape=-1:2)
 
 [1]   NaN   NaN 0.3678794 0.3678794
 Warning message:
 NaNs produced in: dgamma(x, shape, scale, log)


Yes, you are right.

 I think that it would be nice that returning NaN for undefined parameter
 values in distribution functions would also be documented in Writing R
 Extension.
 
 It is purely a convention for use in the standalone libRmath with which 
 the code is shared.  Otherwise returning NA or giving an error would 
 seem more appropriate.
 
 `Writing R Extensions' does not cover writing distribution functions, 
 and is certainly not intended to mandate how such extensions are written.

I understand, however it would be really nice to have some guideline so 
that developers would write more or less similar code. I had a problem 
with one such functions, since it stopped if parameters values were out 
of parameter space. I used that function in optim() and it was 
annoyingly stopping the optimization. It was not much to change the 
function to return NaN (this could be as well NA as you have pointed 
out), but it would be nice that this would be the default.

-- 
Lep pozdrav / With regards,
 Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si 

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888 

--
One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.

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


[Rd] NaN in R distribution functions

2005-12-28 Thread Gregor Gorjanc
Dear R developers,

I noticed that core R distribution functions return NaN, when parameter 
values are out of parameter space. I have looked in source code and 
found that warnings and return of NaN are done internally in C code. For 
dgamma.c the line 49 is:

 if (shape = 0 || scale = 0) ML_ERR_return_NAN;

OK. How should this be implemented if distribution functions are written 
directly in R? I came up with this

 if (any(shape = 0)) {
 warning(shape must be positive)
 return(NaN)
 }

I think that it would be nice that returning NaN for undefined parameter 
values in distribution functions would also be documented in Writing R 
Extension.

-- 
Lep pozdrav / With regards,
 Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si 

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888 

--
One must learn by doing the thing; for though you think you know it,
  you have no certainty until you try. Sophocles ~ 450 B.C.

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


Re: [Rd] Problem with fitdistr for gamma in R 2.2.0

2005-11-17 Thread Gregor Gorjanc
Thanks to both Peters for involvment. I will add argument for method to
be used in optim.

-- 
Lep pozdrav / With regards,
Gregor Gorjanc

--
University of Ljubljana PhD student
Biotechnical Faculty
Zootechnical Department URI: http://www.bfro.uni-lj.si/MR/ggorjan
Groblje 3   mail: gregor.gorjanc at bfro.uni-lj.si

SI-1230 Domzale tel: +386 (0)1 72 17 861
Slovenia, Europefax: +386 (0)1 72 17 888

--
One must learn by doing the thing; for though you think you know it,
 you have no certainty until you try. Sophocles ~ 450 B.C.

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