r - R - 将文件路径添加到数据帧的每一行
问题描述
我对 R 比较陌生,我正在从同一文件夹的不同子文件夹中的许多 .csv 文件中创建一个数据框。到目前为止,我得到了这个:
setwd("~/LMB/Top 6 - 2019/Juegos")
Batting.files <- list.files(path = "~/LMB/Top 6 - 2019/Juegos/",
recursive = T, pattern=c("(statsHomeBatting.csv|statsVisitorBatting.csv)",
full.names=T))
setwd("~/LMB/Top 6 - 2019/Juegos/")
Batting.Logs <- do.call(rbind,lapply(Batting.files,read.csv, check.names = FALSE, sep = ";"))
我拥有文件的子文件夹如下所示:
~\LMB\Top 6 - 2019\Juegos\Lanús at Ferro Feb 10
我想要的是在每一列中都有一个变量(让我们将它命名为Batting.Logs$Game
它显示目录的最后一部分(在这种情况下Lanús at Ferro Feb 10
)
我已经搜索了旧答案,但我无法完成它,所以我现在不确定是否可以使用我拥有的当前编码来完成它。
提前致谢!
解决方案
我想你想要?dirname()
和?basename()
。
dirname(path)
返回路径的一部分,直到但不包括最后一个路径分隔符,或“。” 如果没有路径分隔符。
basename(path)
删除直到并包括最后一个路径分隔符(如果有)的所有路径。
例子:
具有两个路径的数据框,要获取直接父目录,首先提取目录名称,然后提取结果的基本名称。
d <- data.frame(path = c('path/to/some/file.csv', 'path/to/another/file.csv'),
stringsAsFactors = F)
d$file_dir <- basename(dirname(d$path))
d
#> path file_dir
#> 1 path/to/some/file.csv some
#> 2 path/to/another/file.csv another
推荐阅读
- statistics - 如何在 gem5 中定义另一个统计文件
- php - 有没有办法使用phpmailer安排从gmail smtp服务器发送的邮件?
- html - 将文件提交到服务器后处理 Json 响应
- kotlin - 如何在列表中获得最大双倍?只有一个输出,使用 Kotlin
- python - 如何总结列中包含特定字符串的行中的所有值?
- android - 尝试膨胀自定义布局但无法
- java - APNS PushNotifcation 服务正在触发“握手期间远程主机关闭连接”
- javascript - 如何覆盖或重新定义 vue 路由器?
- javascript - 调用 JSON.stringify 时检测父对象
- typo3-8.x - Typo3 扩展配置