Dear R users,

I am trying to fill in arrays (5 different according to distinct "id")
from objects produced from arbitrary data set below.

  a <-
data.frame(id=rep(c("idA1","idA2","idA3","idA4","idA5"),2),pro=c("bb","uu","ee","tt","uu","gg","tt","bb","gg","ee"),sal=rpois(10,2))

      id    pro sal
1  idA1  bb   2
2  idA2  uu   0
3  idA3  ee   3
4  idA4  tt   2
5  idA5  uu   4
6  idA1  gg   3
7  idA2  tt   0
8  idA3  bb   1
9  idA4  gg   0
10 idA5  ee   5
My desired outputs (5 arrays/lists classified according to distinct "id"
field) are as follow:

> TA1
bb ee gg tt uu
 2  0  3  0  0

> TA2
bb ee gg tt uu
 0  0  0  0  0

> TA3
bb ee gg tt uu
 1  3  0  0  0

...... similarly for TA4 & TA5.

The above results were produced using TA1 <-
c(bb=TA1.bb,ee=TA1.ee,gg=TA1.gg,tt=TA1.tt,uu=TA1.uu), TA2 <-
c(bb=TA2.bb,ee=TA2.ee,gg=TA2.gg,tt=TA2.tt,uu=TA2.uu*)* etc for TA3~TA5.
Although these generate the output I desire, I would like to use a single
statement for producing 5 different arrays (instead of 5 different
statements)

I have tried the following codes, however the last statement (paste("T",
substring(i,3,4), sep="") <- c(bb ......) gives error message reading "Error
in paste("T", substring(i, 3, 4), sep = "") <- c(bb = paste(paste("T",
: target of assignment expands to non-language object"

for (i in unique(a$id))
  for (j in unique(a$pro))
    assign(paste(paste("T", substring(i,3,4), sep=""), j, sep="."),
sum(subset(a, a$id == i & a$pro == j)$sal))
    paste("T", substring(i,3,4), sep="") <- c(bb=paste(paste("T",
substring(i,3,4), sep=""),j, sep="."),ee=paste(paste("T", substring(i,3,4),
sep=""),j, sep="."),

gg=paste(paste("T", substring(i,3,4), sep=""),j,
sep="."),tt=paste(paste("T", substring(i,3,4), sep=""),j, sep="."),

uu=paste(paste("T",
substring(i,3,4), sep=""),j, sep="."))

Your solution to this problem would be highly appreciated.



Steve

	[[alternative HTML version deleted]]


