[R] Why do the results of paste() depend on how the argument (data.frame) is constructed?

Bill.Venables at csiro.au Bill.Venables at csiro.au
Mon Aug 2 06:09:35 CEST 2010


Just to add to the confusion, for (nearly) all practical purposes they are the same:

> all.equal(df1, df2)
[1] TRUE
> do.call(paste, df1)
[1] "1 4" "2 5" "3 6"
> do.call(paste, df2)
[1] "1 4" "2 5" "3 6"
>  



-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Erik Iverson
Sent: Monday, 2 August 2010 1:48 PM
To: thmsfuller066 at gmail.com
Cc: r-help at r-project.org
Subject: Re: [R] Why do the results of paste() depend on how the argument (data.frame) is constructed?

On 08/01/2010 08:48 PM, thmsfuller066 at gmail.com wrote:
> Hi,
>
> The following two 'df's should be the same, although their
> constructions are different.

But they aren't the same.

df1 <- data.frame(X=c(1, 2, 3), Y=c(4, 5, 6))
df2 <- data.frame(X=1:3, Y=4:6)
identical(df1, df2)

yields FALSE

See

str(df1)
str(df2)

to see how they differ.



  But the results of paste() are different.
> I don't see this is explained in ?paste. Could you help me understand
> why it is like this?
>
>> df=data.frame(X=c(1, 2, 3), Y=c(4, 5, 6))
>> df
>    X Y
> 1 1 4
> 2 2 5
> 3 3 6
>> paste(df)
> [1] "c(1, 2, 3)" "c(4, 5, 6)"
>> df=data.frame(X=1:3, Y=4:6)
>> df
>    X Y
> 1 1 4
> 2 2 5
> 3 3 6
>> paste(df)
> [1] "1:3" "4:6"
>>
>
>

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list