美文网首页
批量处理——把循环中产生的数据框合并

批量处理——把循环中产生的数据框合并

作者: 生信小鹏 | 来源:发表于2022-11-08 18:57 被阅读0次
R

这是对之前批量处理方法的一个补充,前面的文章

目录
批量处理——for循环批量计算组间差异
批量处理——apply批量计算组间差异
批量处理——for循环画图
批量处理——for循环迁移文件
批量处理——基因之间的相关性
批量处理——基因与免疫细胞的相关性
批量处理——基因与免疫细胞的相关性

出现的需求

在循环过程中,每一次都有一个数据框产生,而最终想要把这些数据框放置在同一个数据框中。

例如我分析数据过程中,第一步是根据免疫细胞的表达情况进行分组,第二步是根据分组,比较选定基因与分组之间的关系。由于免疫细胞浸润的不同,每一次分组都会有差别,所以这要一次循环操作。然后每一次分组后,还有若干基因需要根据分组进行比较。每次进行比较后,会有统计分析的结果,而我需要最后汇总的统计结果。

数据

计算

有两种处理方法,一种是通过创建列表list的形式,另一种是通过创建空的dataframe的形式。

第一种方法

通过提前创建空的dataframe的方式

df <- data.frame()

for(i in 1:22) {
  print(colnames(res_cibersort)[i])
  mean_num <- mean(res_cibersort[,i])
  
#根据免疫数据进行分组,并选定分组和名称
  res_group <- res_cibersort %>% 
    as.data.frame() %>% 
    mutate(group = ifelse(res_cibersort[,i] < mean_num, "Low", 'High')) %>% 
    select(i, group)
  

#分组信息和表达信息进行合并
  expr_res_group <- expr_candi_gene %>%
    .[rownames(res_group),] %>% 
    cbind(res_group,.)
  
  data <- expr_res_group
  
  # 整合成一个步骤
  kruskal_data <- do.call(rbind, lapply(colnames(data)[3:ncol(data)], function(x){
    dd <- kruskal.test(data[,x] ~ group, data = data)
    data.frame(cell = colnames(data)[1],gene=x,p.value=dd$p.value)
  }))
    
  df = rbind(df, kruskal_data)
}

第二种方法

通过创建空list的形式、

l <- list()

for(i in 1:22) {
  print(colnames(res_cibersort)[i])
  mean_num <- mean(res_cibersort[,i])
  
  res_group <- res_cibersort %>% 
    as.data.frame() %>% 
    mutate(group = ifelse(res_cibersort[,i] < mean_num, "Low", 'High')) %>% 
    select(i, group)
  
  expr_res_group <- expr_candi_gene %>%
    .[rownames(res_group),] %>% 
    cbind(res_group,.)
  
  data <- expr_res_group
  
  # 整合成一个步骤
  kruskal_data <- do.call(rbind, lapply(colnames(data)[3:ncol(data)], function(x){
    dd <- kruskal.test(data[,x] ~ group, data = data)
    data.frame(cell = colnames(data)[1],gene=x,p.value=dd$p.value)
  }))
  
  l[[i]] <- kruskal_data
}

df_now <- do.call(rbind,l)

对比两次的数据

两次数据是一致的

最终得到的数据是,根据选定免疫细胞浸润情况,划定分组后,不同基因表达是否有差异。


参考文章
R中将循环产生的数据框合并

相关文章

  • 批量处理——把循环中产生的数据框合并

    这是对之前批量处理方法的一个补充,前面的文章 目录批量处理——for循环批量计算组间差异[https://www....

  • R语言文件级别数据处理

    文件级别的数据处理,包括合并数据框、分类汇总(整合)、数据框的转置与重组。 合并数据框 合并数据框就是把多个数据框...

  • R中将循环产生的数据框合并

    1.问题 今天利用R写循环的时候出现了一个问题,循环内会产生多个数据框,希望将这多个数据库合并并生产一个最终的数据...

  • R语言循环中数据框的合并,顺序排列

    画热图中耽误时间较久的部分 一. 循环产生的数据框合并 https://www.jianshu.com/p/db5...

  • 2019-07-18听课总结

    内容 • 循环-数组|数据框• 循环-因子• 循环-while| if else• 数据处理-排序|集合|长宽• ...

  • python--pandas合并与连接

    合并与连接操作是数据处理中常见的,在pandas中用concat或append方法实现数据框的合并操作,用merg...

  • R-基础

    数据框的合并:数据框的纵向合并,一般两个数据框之间会通过共有的变量内联结,通常采用merge()函数;cbind(...

  • Shell常用循环示例(for和while批量处理)2022-0

    相关关键词 for 循环 while 循环 while循环内的变量在循环外失效 批量生成脚本 批量处理 适用背景 ...

  • Python数据分析_Pandas03_数据整理

    主要内容: 增删行列 修改数值:apply lambda 描述统计 合并、补齐数据 极端值处理 起始数据框: 增删...

  • R之rbind.fill

    我们总结下R中合并数据框的方法,按列合并cbind()函数,按行合并rbind()函数那么如果对于行列不统一的数据...

网友评论

      本文标题:批量处理——把循环中产生的数据框合并

      本文链接:https://www.haomeiwen.com/subject/kcywtdtx.html