in Mathematica, I-Arrays machen kann mit:Assign Array-Werte in R mit der Funktion der Indizes
Table[f(x1, x2, ..., xn), {x1, v1}, {x2, v2}, ..., {xn, vn}]
Wo f
irgendeine Funktion ist, sind die xi
Variablen und die entsprechenden vi
sind die Vektoren von Werten, die Variablen übernehmen. Wenn die vi
Längen Li
haben, dann ist das Array L1xL2x...xLn
.
Ist diese Funktion in R mit eingebauter Funktion verfügbar, oder müsste ich dafür ein eigenes Programm schreiben?
Hier ist eine Funktion, die ich geschrieben habe, die erreicht, was ich will, aber gibt es eine eingebaute Funktion, die das tut?
# Function definition
xapply <- function(fun,vecs){
n <- length(vecs)
dims <- sapply(vecs,length)
prods <- c(1,cumprod(dims))
ivecs <- vector(mode="list",length=n)
for(i in seq(n)){
ivecs[[i]] <- rep(rep(vecs[[i]],each=prods[i]),prods[n+1]/prods[i+1])
}
my.args <- c(fun,ivecs)
return(array(do.call(mapply,my.args),dims))
}
# Example
v1=c(1,2,3,4)
v2=c(10,20,30,40,50)
v3=c(100,200,300)
v123=list(v1,v2,v3)
my.array1 <- xapply(function(x,y,z) x+y+z,v123)
my.array1
Haben Sie jede mögliche v1 X v2 X ... X vn Kombination berechnet werden sollen? – lmo