gpt4 book ai didi

r - 如何阅读包含转义引号的引用文本

转载 作者:行者123 更新时间:2023-12-03 11:31:19 25 4
gpt4 key购买 nike

请考虑以下逗号分隔的文件。为简单起见,让它包含一行:



'I am quoted','so, can use comma inside - it is not separator here','but can\'t use escaped quote :=('




如果您尝试使用命令阅读它

table <- read.csv(filename, header=FALSE)


该行将分为4部分,因为该行包含3个逗号。实际上,我只想阅读3个部分,其中一部分包含逗号。引用标志在那里寻求帮助。我试过了:

table <- read.csv(filename, header=FALSE, quote="'")


但这属于错误 "incomplete final line found by readTableHeader on table"。发生这种情况的原因是引号的奇数(七)。

read.table()scan()都具有参数 allowEscapes,但是将其设置为 TRUE并没有帮助。可以,因为您可以从 help(scan)读取:


解释的转义是控制字符
‘\ a,\ b,\ f,\ n,\ r,\ t,\ v',...
...其他任何逃脱
字符被视为自身,包括反斜杠


请建议您如何阅读此类带引号的csv文件,其中包含转义的 \'引号。

最佳答案

一种可能是使用readLines()照原样读取所有内容,然后用其他字符替换引号,例如:

tt <- readLines("F:/temp/test.txt")
tt <- gsub("([^\\]|^)'","\\1\"",tt) # replace ' by "
tt <- gsub("\\\\","\\",tt) # get rid of the double escape due to readLines


这允许您使用 textConnection读取向量tt

zz <- textConnection(tt)
read.csv(zz,header=F,quote="\"") # give text input
close(zz)


不是最漂亮的解决方案,但是它可以工作(前提是您当然不在文件中某处有“字符” ...)

关于r - 如何阅读包含转义引号的引用文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6032296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com