搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  R语言 如何批量读取多个.csv表格,批量重命名这些表格的第一列,并对第一列数据进行处理?.docx
资料下载链接地址: https://bbs.pinggu.org/a-3610069.html
附件大小:
619.94 KB   举报本内容

问题背景:我需要处理“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_1CellName_GenePair_2...... CellName_GenePair_20

我无法实现的内容:
1
、我不能在上面for循环的代码里,批量对已经读取的表格第一列列名进行重命名,代码如下:

1.#建立for循环用于批量读取数据表、批量重命名所有表格的第一列2.for (i in 1:length(CellName_csv)) {3.assign(paste0("CellName_GenePair_", i), read.csv(CellName_csv))4.colnames(CellName_GenePair_i)[1] <- “pair_ab” #对应错误图65.#colnames(paste0("CellName_GenePair_", i))[1] <- "pair_ab"#对应错误图76.#colnames(CellName_GenePair_))[1] <- "pair_ab"#对应错误图87.}8.

错误截图(或):

图6

图7

图8

2、既然不能用for循环批量重命名所有表格第一列,那也无法合并每一对表格,去重复、以及保存。

总结:我不知道在for循环中,如何正确地输入数据表变量:CellName_GenePair_i,然后对这20个表格进行批量的,我想要的常规操作。另外,我其实需要处理不止20个表格,而是2000个表格,每个表格里基因名称也有20384个,但只有先知道如何在for循环里调取已经批量读取的数据表,才能继续进行下一步操作,可是在对这些表格进行列重命名时,就由于变量填写的不对而出错。

求解疑答惑,万分感激!



    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2026-2-2 19:49