【生信笔记】R语言将Excel文件按照列名拆分为多个文件

首先来看拿到这组数据,需要按照outcome的列名不同将数据保存为Paresthesia.csv和Dry mouth.csv两个文件,假如数据量少,我们一般在Excel进行筛选(保证列名存在,直接复制时第二组数据需要手动添加列名),然后复制每组数据进行新建就可以实现。但是当数据量大时,这种方法就是一种最笨的方法,耗时耗力。

因此笔者以"将excel按照某一列拆分成多个文件"进行了搜索,结果发现在Excel中利用VBA代码就可以实现,
但是这种方法看都看不懂,那么有没有利用R语言可以实现的方法呢?在网上看到这篇教程https://blog.csdn.net/u010652755/article/details/72979692才有一种恍然大悟之感。接下来做一个简要的分享。
其实实现这个的操作很简单,主要分为两步,第一步是按照列名筛选数据,第二步是将符合列名的数据进行保存,这也跟我们在Excel中的操作思路是一样的。
第一步,如何去识别列名呢?我们需要用到一个函数unique,这也是我在最开始没有考虑到的(学的太少)。那如何将符合列名的数据进行保存呢?这里也分为两步,第一步是按照列名构建数据,我们需要用到subset函数,即在数据集中按照列名提取子集,第二步是将子集按照列名进行保存,我们需要用到write.csv.
因此最终我们可以通过这样的命令实现:

library(readxl) # 加载程序包读取excel数据
dt<- read_excel(“不良反应数据.xlsx”)
res <- unique(dt[,7]) # 将列名去重,即将列名保存为res变量,7是列名的列数
for (i in c(1:nrow(res[,1]))){ # 撰写循环,每一个列名运行一次
  dt1 <- subset(dt, dt[,7]==as.character(res[i,1]))# 按照列名不同提取数据
  cfilename = paste(res[i,1],”.csv”,sep = “”) # 构建保存的文件名以及格式
  write.csv(dt1[,1:7],cfilename) # 保存数据
}

(0)

相关推荐

  • R语言 | 读写txt、csv、excel文件

    [更新~] Python网络爬虫与文本数据分析 前段时间看到plotnine库(封装的R语言ggplot2)作的图太美了,有点想重新拾起R语言^_^ R语言代码略带凌乱,讲真的还是更喜欢Python代 ...

  • Excel应用大全 | 来认识Excel数据源吧!

    一本书教会你分分钟搞定数据分析! 跟着小编一起来来认识一下Excel丰富多样的数据源吧! 统一的数据获取和转换体验 从 Excel 2016 开始,Excel 引入了一组强大的数据获取和转换工具 Po ...

  • 使用Python将数据保存到Excel文件

    前面,我们已经学习了如何从Excel文件中读取数据,参见: Python pandas读取Excel文件 使用Python pandas读取多个Excel工作表 Python读取多个Excel文件 如 ...

  • 人人影视csv资源文件使用解疑

    昨天推文关于人人影视资源(戳左边蓝字跳转查看)的整理中,遇到了csv文件打开的问题,今天专门写一篇推文说明一下,如果有同样不太熟悉csv文件的小伙伴,可以看一看. 逗号分隔值(Comma-Separa ...

  • 生信技能树-R语言视频课听后感 (10万+的播放量就看这个春节)

    应该是我自己的学徒就贡献了一半的学习量吧,距离我夸下海口的10万工程师相差甚远,所以非常有必要放一些导学笔记,这个春节,难度你没有发现特别适合猫在家听视频搞学习吗?而且我们还有一系列免费数据分析提供给 ...

  • 【生信笔记】如何避免基因名称被Excel自动转换?

    在进行生信分析时我们会发现,将测序数据用Microsoft Excel打开后,部分基因名会自动转换为日期或浮点. 例如,将下表中第一列的数据导入Excel后,将自动转换为第二列的内容: 一旦导入Exc ...

  • 生信笔记 | 自定义GSEA分析中的gmt格式文件

    在GSEA分析中,在MSigDB(Molecular Signatures Database)数据库中定义了很多基因集,下载的基因集是gmt格式文件.下载的gmt格式文件,打开后可以看见是下面这个样子 ...

  • R绘图笔记 | R语言绘图系统与常见绘图函数及参数

    一. R语言绘图系统 在 R 里,主要有两大底层图形系统,一是 base 图形系统,二是 grid 图形系统.lattice 包与 ggplot2包正是基于 grid 图形系统构建的,它们都有自己独特 ...

  • 这样做可以提高你解决做纯生信遇到R代码报错的效率

    很多纯生信刚入门的粉丝经常会遇到R代码报错的问题,于是到处求助,但是求助的时候往往只发一张截图.当然如果是简单的报错,一般会的人都可以马上看出来,如果不忙的话可能会回答你的问题,例如下面的情况: 这些 ...

  • 【生信笔记】Linux如何自动登录服务器账号?

    在使用服务器时,往往需要进行密码登录,甚至有的需要先登录堡垒机,再登录开发机,输入过程较为繁琐,因此可以考虑将命令写成脚本的形式自动化登录. expect是一个能实现自动和交互式任务的解释器,它也能解 ...

  • 【生信笔记】数据框按照特定顺序修改列名

    在前期我们为大家介绍了[R包荟萃]热图绘制工具:pheatmap包详解,其中想要绘制分组的热图时需要两个数据,即原始表达矩阵mat和分组信息annotation_col,其中annotation_co ...

  • 【生信笔记】高速下载测序数据:Aspera的安装与使用

    当我们需要一些NGS数据时,一般会去NCBI或者EBI的数据库中下载.但是当我们用wget下载时,时常会出现断开连接或者网络下载速度缓慢,对于几十G或者上百G的数据,下载无计可施,这是则可以使用Asp ...

  • 【生信笔记】右键菜单打开WSL功能方法简介

    在人工智能以及生物信息学发展迅速的现在,充分掌握相关技术是非常重要的,而由于系统的差异,导致很多软件需要在Linux或者Mac OS上运行,长期以来,在Windows系统上解决这一难题的方式是安装虚拟 ...