簡體   English   中英

R - 將文件路徑添加到數據幀的每一行

[英]R - Adding filepath to each row of a dataframe

我對 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)返回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

如果你結合這個答案

https://stackoverflow.com/a/44304004/3438524 (針對問題:一次讀取多個 csv 數據並創建新列

使用 dirname 和 basename(如 npjc 已發布: https ://stackoverflow.com/a/54888162/3438524),這應該可以解決問題。

Batting.files  <- list.files(path = "~/LMB/Top 6 - 2019/Juegos/",
    recursive = T, pattern=c("(statsHomeBatting.csv|statsVisitorBatting.csv)", 
                                           full.names=T))
dt.list <- sapply(file.list, fread, simplify=FALSE,data.table=F)
DT <- rbindlist(dt.list, idcol = 'folder')[, `:=` (folder = basename(dirname(folder)))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM