在r中使用fread读取文件时解释新行\n字符
我无法在在r中使用fread读取文件时解释新行\n字符,r,fread,R,Fread,我无法在data.table包中获取fread,无法按预期处理新行(\n)。它们显示为“\n”而不是新行(headshow“\\n”而不是“\n”)。根据下面这篇文章,我了解到,fread应该能够处理这种情况: 我尝试引用(“字符串”)值列,结果相同。是否有我遗漏的简单解决方案或参数?他们应该设法逃脱吗?下面是一个说明问题的示例,以及我的实现: [编辑:]一些说明,因此您无需阅读代码即可遵循。strings.txt的内容显示在下面的代码注释中。该文件是一个以制表符分隔的文本文件,有四列、三行和
data.table
包中获取fread
,无法按预期处理新行(\n)。它们显示为“\n”而不是新行(head
show“\\n”而不是“\n”)。根据下面这篇文章,我了解到,fread
应该能够处理这种情况:
我尝试引用(“字符串”)值列,结果相同。是否有我遗漏的简单解决方案或参数?他们应该设法逃脱吗?下面是一个说明问题的示例,以及我的实现:
[编辑:]一些说明,因此您无需阅读代码即可遵循。strings.txt的内容显示在下面的代码注释中。该文件是一个以制表符分隔的文本文件,有四列、三行和一个标题行。文件中的第一个条目是strMsg1
,与strasinted
相同。但是,fread
在读取文件时会向\n添加一个额外的反斜杠,这会使新行字符变成文字\n。如何避免这种情况?我只需要能够将新行编码到字符串中。希望这是可以理解的
[Edit2:]结果如图所示。
库(data.table)
图书馆(gWidgets2)
#strings.txt
#范围顺序键值
#test\u gui 1 strMsg1文本,带有新行字符:\n1)第一个点和\n2)第二个点应该在单独的行上\n\n然后可能是下面的一些文本,用空行分隔。
#test_gui 2 strMsg2某些文本不包含新行字符。
#test_gui 3 strMsg3展开窗口以查看文本和按钮小部件
误读你误解了fread
正在做的事情。您的输入文件包含一个反斜杠,后跟n
,这就是fread
中的字符串所包含的内容。但是,当打印包含反斜杠的字符串时,它会加倍。(如果不需要,请使用cat()
打印它。)strasinted
变量不包含反斜杠,它包含一个换行符,打印时显示为\n
如果要将输入文件中的\n
转换为换行符,请使用gsub
或其他替换函数。比如说,
dt[,3] <- gsub("\\n", "\n", dt[,3], fixed = TRUE)
dt[,3]您误解了fread
正在做的事情。您的输入文件包含一个反斜杠,后跟n
,这就是fread
中的字符串所包含的内容。但是,当打印包含反斜杠的字符串时,它会加倍。(如果不需要,请使用cat()
打印它。)strasinted
变量不包含反斜杠,它包含一个换行符,打印时显示为\n
如果要将输入文件中的\n
转换为换行符,请使用gsub
或其他替换函数。比如说,
dt[,3] <- gsub("\\n", "\n", dt[,3], fixed = TRUE)
dt[,3]我们不知道您的strings.txt
文件中有什么。它在下面代码示例#strings.txt中的注释中。我们不知道您的strings.txt
文件中有什么。它在下面代码示例#strings.txt中的注释中。谢谢您的解释。我认为它不是这样工作的。更新了修复示例:dt[,value:=gsub(“\\n”,“\n”,value,fixed=TRUE)]
感谢您的解释。我认为它不是这样工作的。更新了带有修复的示例:dt[,value:=gsub(“\\n”,“\n”,value,fixed=TRUE)]
dt[,3] <- gsub("\\n", "\n", dt[,3], fixed = TRUE)