如何将R中整个CSV文件的反斜杠替换为正斜杠?

如何将R中整个CSV文件的反斜杠替换为正斜杠?,r,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(n

我有一个简单的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)
文件2如下所示:

100;folder/path/myfile.mp3
101;folder/path/anotherfile.mp3
102;folder/path/finalfile.mp3
folder\path\myfile;64
folder\path\anotherfile;58
folder\path\finalfile;34
因此,我的脚本基于路径列(文件1中的第二列和文件2中的第一列)将文件1与文件2合并。如果两个文件的每一行都有正向斜杠,则可以很好地执行此操作

问题是文件1有正斜杠,文件2有反斜杠,所以合并不起作用

考虑到它们都使用不同的斜杠,如何使合并工作?换句话说,如何在合并之前将所有file2转换为使用正向斜杠?我需要最终结果使用前斜杠,而不是反斜杠

我已经浏览了很多其他的问题和答案,以前也有人问过用反斜杠代替正斜杠,但只涉及字符串。我找不到一个问题,询问如何替换整个源CSV文件中的每个斜杠。所以我不相信这是重复的

非常感谢。

这应该可以:

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

将my code中的
替换为任何列名。

另一个正则表达式可能是以下内容

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

现在需要将上述内容应用于数据帧的列。

file2$column=gsub(pattern=“\\”,replacement=“/”,x=file2$column)
,在我的代码中用任何列名替换
column
,并且您的文件路径只是字符串。很可能和你们看到的其他问题的答案是一样的。哦,天哪,太简单了,谢谢!我不得不使用“\\\”(4个斜杠)而不是“\\”(2个斜杠),因为2个斜杠产生了一个错误,我不得不使用V1和V2而不是列名,但一旦我更改了这些内容,它就工作得很好。您的回答告诉我如何更改整个文件上的斜杠,这正是我所需要的。所有其他答案都是指字符串,我不知道如何替换整个文件。非常感谢。不过,我似乎无法标记您的答案,我不知道在标记之前是否有最短时间。您的列名是
V1
V2
。一旦你把它读入R,它就不再是一个文件了。它只是一个包含文本的数据框。文本数据通常被称为“字符串”。谢谢你的建议,它对我非常有用。但是你能告诉我为什么我不能记下你的答案吗?是因为这是一个评论吗?我想把这个标记为已回答,这样你就可以得到学分了。谢谢,这个工作做得很好。它完全按照我的需要替换文件中的每个反斜杠。
gsub('\\', '/', x, fixed = TRUE)
#[1] "a/b/c"