[R] Newbie Question -- Remove entire column in a matrix
Charles C. Berry
cberry at tajo.ucsd.edu
Tue Jan 15 21:47:19 CET 2008
On Tue, 15 Jan 2008, My Coyne wrote:
> Really Cool. THANK YOU
>
> Both works, only that New.mat is t is being transposed. So, I added a
> minor change:
>
> New.mat <- matrix (mat [,colSums(mat==0) == 0], byrow = TRUE)
I do not think that is what you want. If there are k columns after
subscripting mat, the result will be a k*nrow(mat) by 1 matrix.
The code below does not transpose the result.
It will return a vector if only one column has colSums( mat==0 ) == 0.
If a vector is not what you want, use the drop=FALSE argument
new.mat <- mat[ , colSums( mat==0 ) == 0, drop=FALSE ]
Chuck
>
>
>
>
>
>
> -----Original Message-----
> From: Charles C. Berry [mailto:cberry at tajo.ucsd.edu]
> Sent: Tuesday, January 15, 2008 12:34 PM
> To: My Coyne
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] Newbie Question -- Remove entire column in a matrix
>
> On Tue, 15 Jan 2008, My Coyne wrote:
>
>>
>>
>> I'm ordering "The R Book" and hope to learn a lot more about R. In a
>> meantime, I have a matrix of digits and I would like to look for a column
>> that contains zeroes and remove the entire column from the matrix. I can
>> write a piece of R code to do that (and it works); however, I think the
>> R-experts have more tricks to do such a 'simple' thing.
>
> Is one of these what you want?
>
> new.mat <- mat[ , colSums( mat==0 ) == 0 ]
>
> new.mat <- mat[ , colSums( mat==0 ) < nrow(mat) ]
>
>
> HTH,
>
> Chuck
>
>>
>>
>>
>> Many thanks in advance.
>>
>>
>>
>> --My Coyne
>>
>>
>>
>>
>>
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>>
>
> Charles C. Berry (858) 534-2098
> Dept of Family/Preventive
> Medicine
> E mailto:cberry at tajo.ucsd.edu UC San Diego
> http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
>
>
>
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list