Criando (e acessando) uma matriz esparsa com entradas padrão NA

Depois de aprender sobre oopções para trabalhar com matrizes esparsas em R, Eu quero usar oMatriz pacote para criar uma matriz esparsa a partir do seguinte quadro de dados e ter todos os outros elementos serNA.

     s    r d
1 1089 3772 1
2 1109  190 1
3 1109 2460 1
4 1109 3071 2
5 1109 3618 1
6 1109   38 7

Eu sei que posso criar uma matriz esparsa com o seguinte, acessando elementos como de costume:

> library(Matrix)
> Y <- sparseMatrix(s,r,x=d)
> Y[1089,3772]
[1] 1
> Y[1,1]
[1] 0

mas se eu quiser que o valor padrão seja NA, tentei o seguinte:

  M <- Matrix(NA,max(s),max(r),sparse=TRUE)
  for (i in 1:nrow(X))
    M[s[i],r[i]] <- d[i]

e recebi esse erro

Error in checkSlotAssignment(object, name, value) : 
  assignment of an object of class "numeric" is not valid for slot "x" in an object of class "lgCMatrix"; is(value, "logical") is not TRUE

Não só isso, acho que leva muito mais tempo para acessar elementos.

> system.time(Y[3,3])
   user  system elapsed 
  0.000   0.000   0.003 
> system.time(M[3,3])
   user  system elapsed 
  0.660   0.032   0.995 

Como devo estar criando essa matriz? Por que uma matriz é muito mais lenta para se trabalhar?

Aqui está o trecho de código para os dados acima:

X <- structure(list(s = c(1089, 1109, 1109, 1109, 1109, 1109), r = c(3772, 
190, 2460, 3071, 3618, 38), d = c(1, 1, 1, 2, 1, 7)), .Names = c("s", 
"r", "d"), row.names = c(NA, 6L), class = "data.frame")

questionAnswers(2)

yourAnswerToTheQuestion