[R] besoin d'aide
Jim Rogers
jrogers at cantatapharm.com
Thu Apr 17 15:03:50 CEST 2003
For writing "special-purpose" merge functions as mentioned below, you will probably want to know about match(). A lot of the essential work of merge() is being done by match(), but merge() also includes a lot of idiot-proofing. Comparing the length of the code for these two functions will give you some idea of the overhead of all that idiot-proofing. If you write your own merge function using match() and cbind(), or match() and data.frame(), it will probably be much faster (but less idiot proof; e.g. if your "by" variable is a factor, you need to be very careful - probably you want to convert it to character prior to the merging operation).
>The function merge() is like the "join" operation in relational data bases
>- it's much more powerful than mere concatenation (and thus often much
>slower, especially on large tables.)
>
>
>To merely concatenate tables together, use rbind() (to concatenate by rows)
>or cbind() (to concatenate by columns).
>
>
>If you do need the power of merge(), but it is too slow for your purposes
>you may be able to write a special-purpose function in R that does just
>only you need and much more quickly -- such is the nature of the S language
>-- it is very powerful, but the powerful general-purpose functions can
>often be quite slow in particular cases.
>
>
>Hope this helps, and apologies if I have not completely understood your
>question.
>
>
>-- Tony Plate
>
>
>
>At Wednesday 03:39 PM 4/16/2003 +0200, Erwan BARRET wrote:
>>J'aimerais savoir si la fonction merge() est la seule disponible pour
>>concatener des tableaux de données?
>>Est-ce normal que l'exécution soit lente?
>>
James A. Rogers, Ph.D. <rogers at cantatapharm.com>
Statistical Scientist
Cantata Pharmaceuticals
300 Technology Square, 5th floor
Cambridge, MA 02139
617.225.9009 x312
Fax 617.225.9010
More information about the R-help
mailing list