测试文件放在rawdata/目录下,包含以下内容
我在rawdata下存放了以上文件
目录
1.dir()
dir("rawdata/")
[1] "001fe63b-06c8-4ca1-861a-3d1dd0fdf5fc" "298e02ea-bc72-48a5-8bfa-af556b7f7487"
[3] "35d4009c-15ea-4c2f-95f0-7a6f4a1a81ef" "3c4efae8-0a57-43b2-b6fd-c62f1f33da28"
[5] "3cab7c8c-eb2c-4fa3-8585-647411499927" "4acf525e-207d-4850-a0bb-ba231c7eb69e"
[7] "5c480d48-8117-48f1-b6d4-c8b420769a43" "5ffa9f1e-0773-486e-ad5b-08f93e90c02c"
[9] "6d79240b-0e19-4f53-9f8e-cb0141cf43a9" "7da0998c-2cd9-4c22-bf95-0f78f4a0c6dc"
[11] "961d7780-4e63-4901-85d7-7707e7c372fe" "abb7228e-61c4-4e61-9852-6cd1d6f1486f"
[13] "ce1af3d1-6e2b-4615-87e6-9083e4babdf9" "d13061a4-f0c4-4797-8842-62ac30e8f1fb"
或者也可以显示路径(我这里用了Rproj,定位在rawdata所在的位置
dir("rawdata/",full.names = T)
[1] "rawdata/001fe63b-06c8-4ca1-861a-3d1dd0fdf5fc" "rawdata/298e02ea-bc72-48a5-8bfa-af556b7f7487"
[3] "rawdata/35d4009c-15ea-4c2f-95f0-7a6f4a1a81ef" "rawdata/3c4efae8-0a57-43b2-b6fd-c62f1f33da28"
[5] "rawdata/3cab7c8c-eb2c-4fa3-8585-647411499927" "rawdata/4acf525e-207d-4850-a0bb-ba231c7eb69e"
[7] "rawdata/5c480d48-8117-48f1-b6d4-c8b420769a43" "rawdata/5ffa9f1e-0773-486e-ad5b-08f93e90c02c"
[9] "rawdata/6d79240b-0e19-4f53-9f8e-cb0141cf43a9" "rawdata/7da0998c-2cd9-4c22-bf95-0f78f4a0c6dc"
[11] "rawdata/961d7780-4e63-4901-85d7-7707e7c372fe" "rawdata/abb7228e-61c4-4e61-9852-6cd1d6f1486f"
[13] "rawdata/ce1af3d1-6e2b-4615-87e6-9083e4babdf9" "rawdata/d13061a4-f0c4-4797-8842-62ac30e8f1fb"
使用pattern参数可以选择特定类型后缀
2.list.files()
list.files("rawdata/")
[1] "001fe63b-06c8-4ca1-861a-3d1dd0fdf5fc" "298e02ea-bc72-48a5-8bfa-af556b7f7487"
[3] "35d4009c-15ea-4c2f-95f0-7a6f4a1a81ef" "3c4efae8-0a57-43b2-b6fd-c62f1f33da28"
[5] "3cab7c8c-eb2c-4fa3-8585-647411499927" "4acf525e-207d-4850-a0bb-ba231c7eb69e"
[7] "5c480d48-8117-48f1-b6d4-c8b420769a43" "5ffa9f1e-0773-486e-ad5b-08f93e90c02c"
[9] "6d79240b-0e19-4f53-9f8e-cb0141cf43a9" "7da0998c-2cd9-4c22-bf95-0f78f4a0c6dc"
[11] "961d7780-4e63-4901-85d7-7707e7c372fe" "abb7228e-61c4-4e61-9852-6cd1d6f1486f"
[13] "ce1af3d1-6e2b-4615-87e6-9083e4babdf9" "d13061a4-f0c4-4797-8842-62ac30e8f1fb"
可以看到和dir()的操作差不多
list.files("rawdata/",full.names = T)
[1] "rawdata/001fe63b-06c8-4ca1-861a-3d1dd0fdf5fc" "rawdata/298e02ea-bc72-48a5-8bfa-af556b7f7487"
[3] "rawdata/35d4009c-15ea-4c2f-95f0-7a6f4a1a81ef" "rawdata/3c4efae8-0a57-43b2-b6fd-c62f1f33da28"
[5] "rawdata/3cab7c8c-eb2c-4fa3-8585-647411499927" "rawdata/4acf525e-207d-4850-a0bb-ba231c7eb69e"
[7] "rawdata/5c480d48-8117-48f1-b6d4-c8b420769a43" "rawdata/5ffa9f1e-0773-486e-ad5b-08f93e90c02c"
[9] "rawdata/6d79240b-0e19-4f53-9f8e-cb0141cf43a9" "rawdata/7da0998c-2cd9-4c22-bf95-0f78f4a0c6dc"
[11] "rawdata/961d7780-4e63-4901-85d7-7707e7c372fe" "rawdata/abb7228e-61c4-4e61-9852-6cd1d6f1486f"
[13] "rawdata/ce1af3d1-6e2b-4615-87e6-9083e4babdf9" "rawdata/d13061a4-f0c4-4797-8842-62ac30e8f1fb"
3.dir_ls()
属于fs包,直接使用常常报错,最好fs::dir_ls()
有颜色,便于区分不同的文件
显示出子文件
4.整理文件下的内容 ***重要***
R语言中批量复制需要的文件到指定文件夹下
涉及到
①获得包含特定字符串的文件
②获得文件绝对路径
③将文件粘贴至另一个文件夹
for (dirname in dir("rawdata/")){
## 1.要查看的单个文件夹的绝对路径
mydir <- paste0(getwd(),"/rawdata/",dirname)
## 2.找到对应文件夹中的文件并提取名称,pattern表示模式,可以是正则表达式
file <- list.files(mydir,pattern = "*.counts")
## 3.当前文件的绝对路径是
myfile <- paste0(mydir,"/",file)
## 4.复制这个文件到目的文件夹
file.copy(myfile,"data_in_one")
}
④文件夹下的文件可能和表格中的文件排序不一致
例如:
需要按照文件夹中的顺序,重排dataframe中文件名顺序–方便一一对应
### 存储文件读入的顺序
files <- dir("data_in_one")
### 行排序
### 为了把文件名称和TCGA_id对应起来
rownames(metadata_id) <- metadata_id[,1]
metadata_id <- metadata_id[files,]
版权声明:本文为m0_58549466原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。