稀疏矩阵在R误差中的应用

稀疏矩阵在R误差中的应用,r,R,无效的类“dgTMatrix”对象:TsparseMatrix中的所有列索引(插槽“j”)必须介于0和ncol-1之间 我有一个如下的数据集 sparseMatrix(i = svd[[1]], j = svd[[2]], x = svd[[3]]) Error in validObject(r) : 试一试 库(矩阵) 图书馆(E2) svd$idTry 库(矩阵) 图书馆(E2) svd$id Trywith(svd,sparseMatrix(p1,p2,x=p3))validOb

无效的类“dgTMatrix”对象:TsparseMatrix中的所有列索引(插槽“j”)必须介于0和ncol-1之间

我有一个如下的数据集

 sparseMatrix(i = svd[[1]], j = svd[[2]], x = svd[[3]])
  Error in validObject(r) : 
试一试

库(矩阵)
图书馆(E2)
svd$idTry

库(矩阵)
图书馆(E2)

svd$id Try
with(svd,sparseMatrix(p1,p2,x=p3))
validObject(r)中的错误:无效类“dgTMatrix”对象:TSParseMatrix中的所有行索引(插槽“i”)必须介于0和nrow-1之间。未获得data.frame错误。检查下面。我使用行/列索引作为p1和p2,x值作为p3。从您的帖子中不清楚预期的输出是什么。请说清楚。此外,sparseMatrix将行/列索引作为第一个和第二个参数。我不知道ID应该在这里做什么。从
?sparseMatrix
文档
I,j:相同长度的整数向量,指定矩阵的非零(或非“真”)项的位置(行和列索引)
在数据集中,不清楚哪一个是行和列id以及相应的值。请尝试
使用(svd,sparseMatrix(p1,p2,x=p3))
validObject中的错误(r):无效类“dgTMatrix”对象:TSParseMatrix中的所有行索引(插槽“i”)必须介于0和nrow-1之间。未获得data.frame中的错误。检查下面。我使用行/列索引作为p1和p2,x值作为p3。从您的帖子中不清楚预期的输出是什么。请说清楚。此外,sparseMatrix将行/列索引作为第一个和第二个参数。我不知道ID应该在这里做什么。从
?sparseMatrix
文档
I,j:相同长度的整数向量,指定矩阵的非零(或非“真”)项的位置(行和列索引)
在数据集中,不清楚哪一个是行和列id以及相应的值。请尝试
使用(svd,sparseMatrix(p1,p2,x=p3))
validObject中的错误(r):无效类“dgTMatrix”对象:TSParseMatrix中的所有行索引(插槽“i”)必须介于0和nrow-1之间。未获得data.frame中的错误。检查下面。我使用行/列索引作为p1和p2,x值作为p3。从您的帖子中不清楚预期的输出是什么。请说清楚。此外,sparseMatrix将行/列索引作为第一个和第二个参数。我不知道ID应该在这里做什么。从
?sparseMatrix
文档
I,j:相同长度的整数向量,指定矩阵的非零(或非“真”)项的位置(行和列索引)
在您的数据集中,不清楚哪一个是行和列id以及相应的值。我有多个id和多列,如何使用它我有多个id和多列,如何使用它我有多个id和多列,如何使用它
id p1  p2   p3   p4
a  10  20   30   40 
b  32  45   65   54
c  54  56   12   45
d  21  34   65   44
library(Matrix)
library(reshape2)
svd$id <- as.numeric(factor(svd$id))
sM <- transform(melt(svd, id.var='id', na.rm=TRUE), 
              variable=match(variable, names(svd)[-1])) 
with(sM, sparseMatrix(id, variable, x=value)) 
svd <- structure(list(id = c("a", "b", "c", "d"), p1 = c(10L, 32L, 54L, 
 21L), p2 = c(20L, 45L, 56L, 34L), p3 = c(30L, 65L, 12L, 65L), 
p4 = c(40L, 54L, 45L, 44L)), .Names = c("id", "p1", "p2", 
"p3", "p4"), class = "data.frame", row.names = c(NA, -4L))