rbind 是魔鬼吗

2019-10-16  本文已影响0人  ShawnMagic

为什么发出这种来自灵魂的拷问

ggplot画图的思路基本是一列是数据,一列是标签,有一次脑袋抽抽想看下转录组fpkm的分布,所以要从fpkm的矩阵中把他整理成每个样本后面打个标签,然后在整理成两列,再用ggplot2画个密度分布曲线。就有了下面的代码:


df1 <- list() # 建一个空的list()用来存储每个sample的数据
for (i in c(1:length(colnames(f)))) {
## 第一步,先对每个样品建一个df,包含了fpkm值和标签(colnames 样品名字)
  df1[[i]] <- data.frame(row.names = rownames(f),
                         x = f[,i],
                         y = rep(colnames(f)[i], times = length(rownames(f))))
# 第二步,对于第一个(i == 1)让他直接赋值到a,而从第二个开始每次都和上一个rbind,最后一个的时候没有下一个了,就让a = a, 这里好像直接打a = df1[[i]] 不行,必须用<- 赋值,不知道什么情况...
  ifelse(i == 1 , a <- df1[[i]],
         ifelse(i == length(f),
                a <- a,
                a <- rbind(a,df1[[i]])))
}

共有153个样品,三个组织,其实我做了个嵌套,这里没写外面那层循环,当时我以为死机了,rbind感觉好慢呀!!!!有没有大佬有啥好办法。救救孩子....

问题解决

其实有个函数叫rbind list

上一篇 下一篇

猜你喜欢

热点阅读