pivot_wider:错误消息“'vec_init()'中的错误:!'n'必须是单个数字,不能是整数'NA'”

xu3bshqb  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(193)

我从depmap下载了蛋白质组学数据,并尝试将数据集“depmap_group_id”作为行名称,将“protein_id”作为列名称。但是,使用pivot_wide创建“proteomic_dep_g_ID2”数据集时,出现以下错误消息“vec_init()中的错误:!n必须是单个数字,不能是整数NA“。有什么解决办法吗?谢谢,

library(depmap)
library(ExperimentHub)
library(dplyr)
library(tidyr)
library(readxl)
library(tidyverse)

proteomic_tmp <- depmap_proteomic()
proteomic_dep_g_ID <- proteomic_tmp%>%
  mutate(depmap_group_id=paste0(.$depmap_id,"_",.$group_id))%>%
  select("depmap_group_id","protein_id","protein_expression")

proteomic_dep_g_ID2 <- pivot_wider(proteomic_dep_g_ID , names_from = protein_id, 
                                   values_from = protein_expression, values_fn = mean)

这里是proteomic_dep_g_ID looks. enter image description here
我试着将数据集缩减为“原始数据集的0.2倍大小”,但pivot_wider仍然给了我这个错误消息“错误:无法分配大小为10.4 Gb的矢量”。

ind_0.2<- 0.2*nrow(proteomic_dep_g_ID)
proteomic_dep_g_ID_a<- proteomic_dep_g_ID[1:ind_0.2,]
proteomic_dep_g_ID_a<- proteomic_dep_g_ID_a%>%
  pivot_wider(.,names_from = protein_id, values_from = protein_expression, values_fn = mean)
pcrecxhr

pcrecxhr1#

似乎还有其他关于使用values_fn和非常大的数据集的问题的报告,因此您可以尝试两阶段方法,例如

proteomic_dep_g_ID2 <- proteomic_dep_g_ID %>% 
     group_by(depmap_group_id, protein_id) %>%
     summarise(protein_expression = mean(protein_expression, 
                                         na.rm = TRUE)) %>%  #just in case!
     ungroup() %>% 
     pivot_wider(names_from = protein_id, 
                 values_from = protein_expression)

我不知道如果没有看到你的数据,这是否会起作用,但它可能值得一试!

相关问题