указывать индексы динамического массива программно - PullRequest
0 голосов
/ 03 апреля 2011

Я хотел бы обобщить этот код для обработки массива любого числа измерений, но я не уверен, как программно указывать индексы массива. Я думаю, что это возможно с некоторой комбинацией цитаты замены замены пасты, но я не могу понять это.

x <- array(runif(1000),dim=c(10,10,10))
w <- vector("list")

for (i in seq(dim(x)[1]))
{
    w[i] <- list(which(x[i,,] == max(x[i,,]),arr.ind=TRUE))
}

for (i in seq(dim(x)[1]))
{
    # looking for something like:
    # s <- paste(i,",",paste(w[[i]],collapse=","),sep="")
    # v <- x[s]
    v <- x[i,w[[i]][[1]],w[[i]][[2]]]
    print(paste("the max at index",i,"is",round(v,4)),quote=FALSE)
}

1 Ответ

0 голосов
/ 03 апреля 2011

нвм, разобрался как это сделать

x <- array(runif(1000),dim=c(10,10,10))
w <- vector("list")

for (i in seq(dim(x)[1]))
{
    w[i] <- list(which(x[i,,] == max(x[i,,]),arr.ind=TRUE))
}

for (i in seq(dim(x)[1]))
{
    v <- do.call(`[`,c(list(x,i),w[[i]]))
    print(paste("the max at index",i,"is",round(v,4)),quote=FALSE)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...