直接看 rstudio里面的 rds 数据 无法看到 expr 表达矩阵的详细数据 ,有什么办法呢

在RStudio里“看不见”expr表达矩阵的常见原因只有两类:

  1. 对象太大,RStudio的Viewer/Environment面板自动截断;
  2. 对象并不是真正的matrix/data.frame,而是嵌在List/S4对象里的slot或元素。
    只要先确认“它到底藏在哪”,再把它拆成真正的矩阵即可。下面给一套“三步排查+两种导出”做法,基本能搞定所有类似情况。

方法一

GSE32967_raw <- readRDS(“K:/download/geo/raw_data/GSE32967_raw.rds”)
expr <- GSE32967_raw$expr
View(expr)

方法2 转成csv


  1. 先搞清楚对象结构
# 把rds读进来
obj <- readRDS("your_file.rds")

# 看顶层类型
str(obj, max.level = 2, give.attr = FALSE)

# 如果是S4
showMethods(class = class(obj))   # 看有什么提取器
slotNames(obj)                    # 看slot名字

# 如果是普通list
names(obj)

90%的情况下expr矩阵要么叫expr、exprs、assay,要么藏在assays()、slot(obj,“assay”)、obj[[“expr”]]里。


  1. 把表达矩阵“抠”出来
    下面给出4句最常用提取模板,按对象类型直接套:

a) 纯list

expr <- obj$expr          # 或 obj[["expr"]]

b) S4对象(ExpressionSet老对象)

library(Biobase)
expr <- Biobase::exprs(obj)

c) SummarizedExperiment / DESeqTransform

library(SummarizedExperiment)
expr <- assay(obj, 1)     # 1可换成"counts","tpm"等名字

d) 自定义大列表,名字不确定

expr <- obj[[ which(sapply(obj, function(x) is.matrix(x) & nrow(x)>5000)) ]]

  1. 确认拿到真正的数值矩阵
class(expr)
dim(expr)
summary(expr[1:5, 1:5])

只要class是matrix/data.frame,且dim出来行是基因、列是样本,就成功了。


  1. 依旧太大、RStudio依旧不显示?
    两种办法绕过Viewer限制:
  1. 直接head+View
View(head(expr, 1000))      # 只看前1000行
  1. 写成csv/txt外部打开
write.csv(expr, file = "expr_matrix.csv", quote = FALSE)
# 或者
data.table::fwrite(data.table::as.data.table(expr), "expr_matrix.tsv", sep = "\t")

写完用Excel/Notepad++/VSCode打开即可。


  1. 一条龙模板(复制即用)
library(SummarizedExperiment)   # 提前装好
obj <- readRDS("xxx.rds")

expr <- if("SummarizedExperiment" %in% class(obj)){
            assay(obj, 1)
        } else if ("ExpressionSet" %in% class(obj)){
            Biobase::exprs(obj)
        } else if (is.list(obj) && "expr" %in% names(obj)){
            obj$expr
        } else {
            stop("请手动str(obj)再决定怎么取")
        }

dim(expr)
write.csv(expr, "expr_matrix.csv", quote = FALSE)

跑完去工作目录下拿csv即可,想怎么看就怎么看。

RStudio 中计算 Pearson 相关系数矩阵,可以使用内置的 `cor()` 函数。该函数默认使用 `"pearson"` 方法计算相关性,因此可以直接用于数值型数据框或矩阵来生成相关系数矩阵。 假设有如下数据框 `df`: ```r df <- data.frame( x = c(1, 2, 3, 4, 5), y = c(2, 4, 6, 8, 10), z = c(5, 4, 3, 2, 1) ) ``` 可以使用以下代码计算 Pearson 相关系数矩阵: ```r cor_matrix <- cor(df) print(cor_matrix) ``` 如果数据中包含缺失值(`NA`),可以通过添加参数 `use = "complete.obs"` 来忽略缺失值: ```r cor_matrix <- cor(df, use = "complete.obs") print(cor_matrix) ``` 输出结果将是一个对称矩阵,其中每个元素表示对应变量之间的 Pearson 相关系数,取值范围为 [-1, 1],值越接近 ±1 表示线性相关性越强 [^3]。 若需要进一步获取显著性检验结果,可以使用 `Hmisc` 包中的 `rcorr()` 函数: ```r library(Hmisc) rcorr_matrix <- rcorr(as.matrix(df)) print(rcorr_matrix$r) # 相关系数矩阵 print(rcorr_matrix$P) # p 值矩阵 ``` 这种方法在分析变量间关系时更为严谨,尤其适用于统计建模和探索性数据分析场景 [^2]。 ### 计算示例 对于一个包含三个变量的数据集,输出的相关系数矩阵可能如下所示: ``` x y z x 1.00 1.00 -1.00 y 1.00 1.00 -1.00 z -1.00 -1.00 1.00 ``` 这表示变量 `x` 与 `y` 完全正相关,而 `x` 与 `z` 完全负相关。 ### 数据类型要求 确保数据框中的所有列均为数值型(`numeric`)或整数型(`integer`)。若包含因子或字符型变量,需先进行转换或排除这些列。 ### 可视化相关系数矩阵 可以使用 `corrplot` 包以图形方式展示相关系数矩阵,增强可视化理解: ```r library(corrplot) corrplot(cor_matrix, method = "circle") ``` 这将生成一个圆形热图,直观表示变量之间的相关性强度和方向。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值