| 所在主题: | |
| 文件名: R语言 如何批量读取多个.csv表格,批量重命名这些表格的第一列,并对第一列数据进行处理?.docx | |
| 资料下载链接地址: https://bbs.pinggu.org/a-3610069.html | |
| 附件大小: | |
|
问题背景:我需要处理“test”文件夹里的20个表格,其中肺癌(LC)表格10个,癌旁(Adjac)表格10个,也就是10对表格,如图1。 图1
每个表格的第一列(列名为“ab”)是很多基因名称,如图2。 图2
需求或想实现的目标: 1、我想批量读取这20个表格; 2、重命名20个表格的第一列,也就是将“ab”改为“pair_ab”; 3、将相同细胞所在表格(例如:Adjac_1-CD8-Naive-T.csv和LC_1-CD8-Naive-T.csv这一对表格,如图3)的第一列合并、去除重复、保存为新表格; 图3
尝试一、以第一对表格进行试验处理,代码如下: 1.#设置工作目录,注意不要有汉字和中文符号2.setwd("C:\\Users\\iCPU\\Desktop\\test")3.#读取基因对表格4.#癌5.LC_1_CD8_Naive_T_GenePair <- read.csv("LC_1-CD8-Naive-T.csv")6.colnames(LC_1_CD8_Naive_T_GenePair)[1] <- "pair_ab"7.#癌旁8.Adjac_1_CD8_Naive_T_GenePair <- read.csv("Adjac_1-CD8-Naive-T.csv")9.colnames(Adjac_1_CD8_Naive_T_GenePair)[1] <- "pair_ab"10. 11. #合并癌和癌旁的基因对,取并集,重复的基因对只保留一个12. Total_1_CD8_Naive_T_GenePair <- data.frame(union(LC_1_CD8_Naive_T_GenePair$pair_ab, Adjac_1_CD8_Naive_T_GenePair$pair_ab))13. colnames(Total_1_CD8_Naive_T_GenePair)[1] <- "GenePair"14. write.csv(Total_1_CD8_Naive_T_GenePair, "Total_1_CD8_Naive_T_GenePair.csv", row.names = FALSE)15. #成功第一对表格运行成功,如图4、5: 图4
图5
尝试二、批量读取这20个(10对)表格,用到了for循环,注意仅仅只能够批量读取表格,不能区分癌LC和癌旁Adjac,代码如下: 1.#将当前文件夹“test”里的文件名都放入变量“CellName_csv”中2.CellName_csv <- dir()3.#建立for循环用于批量读取数据表4.for (i in 1:length(CellName_csv)) {5.assign(paste0("CellName_GenePair_", i), read.csv(CellName_csv))6.}7.#由此成功读取了20个表格,分别是CellName_GenePair_1、CellName_GenePair_2、...... 、CellName_GenePair_20我无法实现的内容: 错误截图(或): 图6 图7 图8
2、既然不能用for循环批量重命名所有表格第一列,那也无法合并每一对表格,去重复、以及保存。
总结:我不知道在for循环中,如何正确地输入数据表变量:CellName_GenePair_i,然后对这20个表格进行批量的,我想要的常规操作。另外,我其实需要处理不止20个表格,而是2000个表格,每个表格里基因名称也有20384个,但只有先知道如何在for循环里调取已经批量读取的数据表,才能继续进行下一步操作,可是在对这些表格进行列重命名时,就由于变量填写的不对而出错。 求解疑答惑,万分感激! |
|
熟悉论坛请点击新手指南
|
|
| 下载说明 | |
|
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。 2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。 3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。 (如有侵权,欢迎举报) |
|
京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明