[英]Why R uses forward slash (/) and not backslash (\) in file paths
[英]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.