[R] attempted merge() returns: cannot coerce type 'closure' to vector of type 'any'

Karl Brand k.brand at erasmusmc.nl
Thu Dec 2 11:22:15 CET 2010


Cheers Bill.

You got me halfway, since:

 > temp <- merge(x=x, y=y[,17, drop=FALSE], by="rownames", sort=FALSE)
Error in fix.by(by.x, x) : 'by' must specify valid column(s)

but, using "row.names" instead of "rownames", like:
 > temp <- merge(x=x, y=y[,17, drop=FALSE], by="row.names", sort=FALSE)

works (but adds a column "Row.names").

Which seems some what counter intuitive to me since i am feeding in two 
matrices to the merge function, which i understand have 'rownames', not 
'row.names' as data frames have, right? Although the output of merge() 
is a data frame...

thanks again,

Karl


On 12/1/2010 6:08 PM, William Dunlap wrote:
> Try
>     by="rownames"
> instead of
>     by=rownames
>
> Bill Dunlap
> Spotfire, TIBCO Software
> wdunlap tibco.com
>
>> -----Original Message-----
>> From: r-help-bounces at r-project.org
>> [mailto:r-help-bounces at r-project.org] On Behalf Of Karl Brand
>> Sent: Wednesday, December 01, 2010 6:35 AM
>> To: Dimitris Rizopoulos
>> Cc: r-help at r-project.org
>> Subject: [R] attempted merge() returns: cannot coerce type
>> 'closure' to vector of type 'any'
>>
>> Hi Dimtris and esteemed useRs,
>>
>> I don't understand why i get this error message when
>> attempting to use
>> merge() -
>>
>>   >  temp<- merge(x, y[,17, drop=FALSE], by=rownames, sort=FALSE)
>> Error in as.vector(x, mode) :
>>     cannot coerce type 'closure' to vector of type 'any'
>>
>> It should work because:
>>
>>   >  all(rownames(x[order(rownames(x)),]) ==
>> + rownames(y[order(rownames(y[,17, drop=FALSE])),17,
>> drop=FALSE]) ....
>> [TRUNCATED]
>> [1] TRUE
>>
>> also:
>>
>>   >  class(x); class(y[,17, drop=FALSE])
>> [1] "matrix"
>> [1] "matrix"
>>
>>
>> Any idea why i cant use merge() in the normal way here? I'm forced to
>> add the column using:
>>
>> temp.b<- cbind(x, y[match(rownames(x), rownames(y)),17])
>>
>> All insights appreciated for this leaRner,
>>
>> cheers,
>>
>> Karl
>>
>>
>> --
>> Karl Brand<k.brand at erasmusmc.nl>
>> Department of Genetics
>> Erasmus MC
>> Dr Molewaterplein 50
>> 3015 GE Rotterdam
>> P +31 (0)10 704 3211 | F +31 (0)10 704 4743 | M +31 (0)642 777 268
>>
>> ______________________________________________
>> 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.
>>

-- 
Karl Brand <k.brand at erasmusmc.nl>
Department of Genetics
Erasmus MC
Dr Molewaterplein 50
3015 GE Rotterdam
P +31 (0)10 704 3211 | F +31 (0)10 704 4743 | M +31 (0)642 777 268



More information about the R-help mailing list