【问题标题】:Assign names of elements in list to file name in R [duplicate]将列表中元素的名称分配给R中的文件名[重复]
【发布时间】:2021-07-26 13:45:13
【问题描述】:

我有一个包含 50 多个 csv 数据框的列表。我正在使用以下文件夹列出我的文件:

#list files   
estaciones <- list.files(path = "Path",
                                 recursive = T, pattern = ".csv", full.names = T)



head(estaciones)

[1] "D:/A/Stations/AngosturaCochea_108013/Angostura_Cochea.csv"      
[2] "D:/A/Stations/BocadeTrampa_162003/BocadeTrampa_162003.csv"      
[3] "D:/A/Stations/Caimito_140005/Caimito_140005.csv"      


#read csvs
estaciones2 = lapply(estaciones, read.csv)

我想将列表中每个元素的名称设置为其原始 CSV 文件名。

我尝试过使用它,但它并没有真正为我做:

estaciones3 &lt;- setNames(estaciones2, substr(list.files("Path", pattern=".csv"))

如何将文件名分配给我的列表元素?

【问题讨论】:

  • 你能提供一个小样本吗?或者显示你想要的输出是什么样的?
  • 我已经编辑了我的帖子以显示我的列表的头部。我正在寻找的是,而不是我的列表中的数字 [1],它与文件相同。例如在元素 [1] 中,它是 [Angostura_cochea]。这可能吗?

标签: r list dataframe element


【解决方案1】:

你可以使用 -

estaciones2 = lapply(estaciones, read.csv)
names(estaciones2) <- tools::file_path_sans_ext(basename(estaciones))

tools::file_path_sans_ext 将返回不带扩展名的文件名,即csv

【讨论】:

  • 感谢您的成功!
猜你喜欢
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
  • 2018-08-01
  • 2020-06-09
  • 2015-12-07
  • 2014-11-03
  • 2016-01-19
相关资源
最近更新 更多