Как преобразовать эту структуру данных в матрицу? - PullRequest
1 голос
/ 30 сентября 2019

У меня есть следующая функция:

tANN_matrix<-function(LSH_result_tables,t){
 i=dim(LSH_result_tables)
 v=i[2]
 tann_matr=matrix(data=NA,nrow=i[2],ncol=t)
 tann_matr=lapply(1:v, function(x) rbind(tann(x,LSH_result_tables,t)))
 tann_matr=matrix(unlist(tann_matr),ncol=t,byrow = TRUE)
 return(tann_matr) }

Функция работает хорошо, она позволяет рассчитать (t-approximate nearest neighbors для вектора в базе данных).

LSH_result_tables : представляет трехмерную хеш-таблицу (например, переменную res)

res variable

Выполнение функции tANN_matrix дает следующий результат:

tANN_matrix output

Вопрос : Как преобразовать этот вывод в матрицу?


Примечание: Функция tann (x, LSH_result_tables, t) in rbind определяется следующим образом:

tann<-function(point_index,LSH_result_tables,t){
  integer_var=dim(LSH_result_tables)[3]
  a=LSH_result_tables
  nearests=c()
  foreach(i=1:integer_var) %do%

    if(!(all(a[,,i] == a[,1,i]))){
      nearests=unique(append(nearests,equal_cols(a[,,i],point_index,t)))
      while (length(nearests) >= t ) break
    }
       return(nearests[1:t])  
} 

1 Ответ

1 голос
/ 30 сентября 2019

Я нашел решение, я должен преобразовать список в матрицу, поэтому мне нужно использовать:

install.packages("sprof", repos="http://R-Forge.R-project.org")
library("sprof", lib.loc="~/R/win-library/3.5")

list_1 <- list(v1=7:9,v2=15, v3=11:15)
matrix_1=list.as.matrix(list_1)
...