R语言中读取和处理文件的常用方法

测试文件放在rawdata/目录下,包含以下内容

 我在rawdata下存放了以上文件

目录

1.dir()

2.list.files()

3.dir_ls()

4.整理文件下的内容 ***重要***

①获得包含特定字符串的文件

②获得文件绝对路径

③将文件粘贴至另一个文件夹

④文件夹下的文件可能和表格中的文件排序不一致



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,]

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

18kkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值