【问题标题】:How to transform this data structure to a matrix?如何将此数据结构转换为矩阵?
【发布时间】:2019-09-30 14:08:18
【问题描述】:

我有以下功能:

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:表示一个 3 维哈希表(例如 res 变量)

函数tANN_matrix的执行给出以下结果:

问题:如何将此输出转换为矩阵?


注意: rbind 中的函数 tann(x, LSH_result_tables ,t) 定义如下:

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])  
} 

【问题讨论】:

    标签: r dataframe matrix nearest-neighbor


    【解决方案1】:

    我找到了解决方案,我应该将列表转换为矩阵,所以我需要使用:

    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)
    

    【讨论】:

    • 感谢您报告并发布您自己问题的答案。干杯 +1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多