![](/img/trans.png)
[英]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.