【问题标题】:Subsetting S4 matrix in RR中的子集S4矩阵
【发布时间】:2020-06-08 07:14:25
【问题描述】:

我有一个名为 T2 的 [4 x 5] 矩阵:

T2 <- new("dgTMatrix",
      i = as.integer(c(1,1,0,3,3)),
      j = as.integer(c(2,2,4,0,0)), x=10*1:5, Dim=4:5)

colnames(T2) <- c("Anthony", "Benjamin", "Clara", "Dexter", "Elise")



abc <- data.frame(c("Anthony", "Benjamin"))
colnames(abc) <- c("Names")

我想对其进行子集化以获得 [4 x 2] 矩阵:

T2.s1 <- subset.matrix(T2, colnames(T2) %in% abc$Names)

有人知道为什么这不起作用吗?

非常感谢,

阿比盖尔

【问题讨论】:

  • 请查看How to make a great R reproducible example,以修改您的问题,并从您的数据中提取更小的样本(查看?dput())。发布您的数据或没有数据的图像会使我们难以为您提供帮助!
  • 好的,我会试试的!
  • expr_matrix 不是matrix 类,而是dgTMatrix 类,它没有subset 函数定义(AFAIK)。为什么不使用expr_matrix[, colnames(expr_matrix) %in% barcode_file.s1$barcode]
  • 我试着做一个可重现的例子,但我不知道它有多棒!谢谢@emilliman5。你的脚本现在给了我一个 [33694 x 0] 矩阵,所以我快到了:-)

标签: r matrix subset sparse-matrix


【解决方案1】:

它不是data.frame,所以不能使用subset,sparseMatrix没有subset方法。

就像你对矩阵做的那样子集化它:

 T2[,colnames(T2) %in% abc$Names]
4 x 2 sparse Matrix of class "dgTMatrix"
     Anthony Benjamin
[1,]       .        .
[2,]       .        .
[3,]       .        .
[4,]      90        .

【讨论】:

  • 感谢您一直帮助我@StupidWolf!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
相关资源
最近更新 更多