[R] Attributing values to matrix according to names
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Thu Oct 20 17:25:12 CEST 2005
"Schneider, Manuel" <Manuel.Schneider at eawag.ch> writes:
> Dear Peter and Uwe
>
> Thanks for your suggestions.
> However,
> > data[names(count),1,1] <- count[names(count)]
> Still gives the indexing problem, guess because not all element of count can be found in data.
Perhaps something like
nm <- names(count)
nm <- intersect(nm,dimnames(data)[[1]]) # or rownames(data)
data[nm,1,1] <- count[nm]
> Found a way round this by
> > temp<-rep(NA, times=as.numeric(names(count[length(count)])))
> > temp[as.numeric(names(count))]<-count
> > rwname<-rownames(data)
> > for (i in 1:dim(data)[1]) data[i,1,1]<-temp[as.numeric(rwname[i])]
> What works for me but I am convinced there is a far more elegant way.
>
> Kind regards
>
> Manuel
>
> -----Original Message-----
> From: pd at pubhealth.ku.dk [mailto:pd at pubhealth.ku.dk] On Behalf Of Peter Dalgaard
> Sent: Thursday, October 20, 2005 4:29 PM
> To: Schneider, Manuel
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] Attributing values to matrix according to names
>
> "Schneider, Manuel" <Manuel.Schneider at eawag.ch> writes:
>
> > > data["10014",1,1]<-count["10014"]
> > works but
> >
> > > data["names(count)",1,1]<-count["names(count)"]
> > Fails with Error: indexing outside limits.
>
> Well, you don't have a row named "names(count)" now do you? Try
> dropping the quotes.
>
> --
> O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
>
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list