[R] using a dictionary in R

p.pagel-lists at gmx.de p.pagel-lists at gmx.de
Wed Oct 19 11:45:43 CEST 2011


On Wed, Oct 19, 2011 at 11:06:21AM +0200, Eran Eidinger wrote:
> Hi all,
> 
> Is there a way to create a "dictionary" in R, such that it has <key,value>
> pairs?
> Something to the effect of:
> x=dictionary(c("Hi","Why","water") , c(1,5,4))
> x["Why"]=5

You can do that with named elements of a vector:

> foo <- c(1,5,4)
> names(foo) <- c("Hi","Why","water")
> foo
   Hi   Why water 
    1     5     4 
> foo["Why"]
Why 
  5 
> foo["Why"] <- 8
> foo
   Hi   Why water 
    1     8     4 


> I want to compute x1^2+x2 on all combinations of x keys
> 
> 
>      x1 x2 val1  val2  x1^2+x2
> 1    a  a   5     5      30
> 2    b  a   2     5      9
> 3    a  b   5     2      27
> 4    b  b   2     2      6

I guess this is along the lines you have in mind:

> dat <- expand.grid(c('a','b'), c('a','b'))
> dat$a <- foo[dat$Var1]
> dat$b <- foo[dat$Var2]
> dat
  Var1 Var2 a b
1    a    a 1 1
2    b    a 8 1
3    a    b 1 8
4    b    b 8 8
> dat$prod <- dat$a*dat$b
> dat
  Var1 Var2 a b prod
1    a    a 1 1    1
2    b    a 8 1    8
3    a    b 1 8    8
4    b    b 8 8   64
 

> get_result["b","a"] = 9

I'm not sure what exactly you want here...

cu
	Philipp

-- 
LipoFIT Analytic GmbH
Dr. Philipp Pagel
Josef-Engert-Str. 9
93053 Regensburg, Germany
Phone: +49 941 698 091 04
Fax: +49 941 698 091 01
Sekretariat: +49 941 698 091 00
Email:  philipp.pagel at lipofit.de
Web:    www.lipofit.de
---
Rechtsform: GmbH
Geschäftsführer: Dr. Fritz Huber, Dr. Volker Pfahlert
Sitz: Regensburg, Amtsgericht Regensburg, HRB 9368
Steuernummer: 183/55803



More information about the R-help mailing list