[R] Generating these matrices going backwards

Chris Stubben stubben at lanl.gov
Wed Nov 14 21:43:06 CET 2007


Maybe something like this?

N<-c(1,2,1,3)
## create empty matrix
x<-diag(0,3)
## fill off diagonal
 x[row(x)==col(x)+1]<-N[1:2]
# fill 3rd column
 x[1:2,3]<-N[3:4]

Or create a function and return both x and y

mat3<-function(N)
{
 x<-diag(0,3)
# fill each element separately
x[2,1]<-N[1]
x[3,2]<-N[2]
x[1,3]<-N[3]
x[2,3]<-N[4]
dimnames(x)<-list(c("D1", "D2", "D3"), c("E1", "E2", "E3"))
y =sum(x) * x / (rowSums(x)%o%colSums(x)) 
list(x=x,y=y)
}
mat3(N)

$x
   E1 E2 E3
D1  0  0  1
D2  1  0  3
D3  0  2  0

$y
     E1  E2     E3
D1 0.00 0.0 1.7500
D2 1.75 0.0 1.3125
D3 0.00 3.5 0.0000




francogrex wrote:
> 
> I have generated the following:
> 
> x= 
>         E1      E2      E3 
> D1      0       0       1 
> D2      1       0       3 
> D3      0       2       0 
> 
> y= 
>         E1      E2      E3 
> D1      0       0       1.75 
> D2      1.75    0       1.3125 
> D3      0       3.5     0 
> 
> Where x and y are linked by: 
> y =sum(x) * x / (rowSums(x)%o%colSums(x)) 
> 
> N=x[x[1:3,]>0] 
> R=y[y[1:3,]>0] 
> 
> Now suppose I ONLY have N and R linked in this way below where each N 
> corresponds to an R 
> 
> N       R 
> 1       1.7500 
> 2       3.5000 
> 1       1.7500 
> 3       1.3125 
> 
> Is there a way to generate matrix "x" and matrix "y" having only the N 
> and the R as above? 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Generating-these-matrices-going-backwards-tf4807447.html#a13756103
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list