[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