全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3791 5
2013-05-30
rm(list=ls())  #清楚内存
library(Matrix)
rSparseMatrix <- function(nrow, ncol, nnz,
                          rand.x = function(n) runif(nnz, 0,1), ...)
{
  stopifnot((nnz <- as.integer(nnz)) >= 0,
            nrow >= 0, ncol >= 0, nnz <= nrow * ncol)
  sparseMatrix(i = sample(nrow, nnz, replace = TRUE),
               j = sample(ncol, nnz, replace = TRUE),
               x = rand.x(nnz), dims = c(nrow, ncol), ...)
}
nInternalUnits<-100
connectivity<-10
nrow<-nInternalUnits
ncol<-nInternalUnits
nnz<-connectivity
maxVal<-0

    internalWeights<-rSparseMatrix(nrow, ncol, nnz)
    internalWeights[internalWeights!=0]
运行后:
总是提示:<sparse>[ <logic> ] : .M.sub.i.logical() maybe inefficient
这时怎么回事,大家帮看看

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-5-30 23:07:36
你的程序大概是干嘛的?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-31 08:53:38
internalWeights[internalWeights!=0]  想计算稀疏矩阵中的每一个非零元素减一个指定数值
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-31 11:13:56
There is a much more efficient way to get the NON-ZERO/missing elements out of a sparse matrix. See the program below.

library(Matrix)
rSparseMatrix <- function(nrow, ncol, nnz,
                          rand.x = function(n) runif(nnz, 0,1), ...)
{
  stopifnot((nnz <- as.integer(nnz)) >= 0,
            nrow >= 0, ncol >= 0, nnz <= nrow * ncol)
  sparseMatrix(i = sample(nrow, nnz, replace = TRUE),
               j = sample(ncol, nnz, replace = TRUE),
               x = rand.x(nnz), dims = c(nrow, ncol), ...)

}
set.seed(123)
nInternalUnits<-5000
connectivity<-100
nrow<-nInternalUnits
ncol<-nInternalUnits
nnz<-connectivity
maxVal<-0

internalWeights<-rSparseMatrix(nrow, ncol, nnz)
as.matrix(summary(internalWeights))
internalWeights[internalWeights!=0]


system.time(as.matrix(summary(internalWeights)))
system.time(internalWeights[internalWeights!=0])
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-31 14:54:08
运行后:
还是提示:<sparse>[ <logic> ] : .M.sub.i.logical() maybe inefficient
请问该提示可以忽略吗,会不会产生不良影响啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-6-1 06:27:07
统计R浪人 发表于 2013-5-31 14:54
运行后:
还是提示:[  ] : .M.sub.i.logical() maybe inefficient
请问该提示可以忽略吗,会不会产生不良 ...
No. AFAIK.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群