簡體   English   中英

如何在R中將整個CSV文件的反斜杠替換為正斜杠?

[英]How to replace backslash to forward slash for entire CSV file in R?

我有一個簡單的R腳本:

file1 <- read.csv2("D:/Home/file1.csv", strip.white = TRUE, header = FALSE)
file2 <- read.csv2("D:/Home/file2.csv", strip.white = TRUE, header = FALSE)

df <- merge(file1, file2, by.x = c(2), by.y = c(1)) 

df2 <- data.frame(new_col = paste('"', df$V2, '#', df$V1, '#', df$V2.y, '",', sep = ""))

write.table(df2, append = FALSE, file = outFile, sep = "#", quote = FALSE, row.names = FALSE, col.names = FALSE)

文件1是這樣的:

100;folder/path/myfile.mp3
101;folder/path/anotherfile.mp3
102;folder/path/finalfile.mp3

文件2如下所示:

folder\path\myfile;64
folder\path\anotherfile;58
folder\path\finalfile;34

因此,我的腳本基於path列(文件1中的第二列和文件2中的第一列)將文件1與文件2合並。 如果兩個文件的每一行都帶有正斜杠,則可以做到這一點。

問題在於文件1具有正斜杠,文件2具有反斜杠,因此合並無法正常進行。

我如何做到這一點,因為它們都使用不同的斜杠,合並將起作用? 換句話說,如何在合並之前將所有file2轉換為使用正斜杠? 我需要最終結果使用正斜杠,而不是反斜杠。

我研究了許多其他問題和答案,之前曾有人問過將反斜杠替換為正斜杠,但僅針對字符串。 我找不到一個問題,詢問如何替換整個源CSV文件中的每個斜杠。 所以我不認為這是重復的。

非常感謝。

這應該工作:

file2$column = gsub(pattern = "\\\\", replacement = "/", x = file2$column)

替換column在我與任何列名稱代碼。

另一個正則表達式可能如下。

x <- 'a\\b\\c'
gsub('[\\]', '/', x)
#[1] "a/b/c"

或者,使用參數fixed = TRUE

gsub('\\', '/', x, fixed = TRUE)
#[1] "a/b/c"

現在,只需將以上內容應用於數據框的列即可。

暫無
暫無

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

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