【发布时间】:2014-09-02 16:04:49
【问题描述】:
我有一个包含以下 5 行代码的文本文件:
#
# 1991 60060GBNYPAN
# 1991 60061GBGTSJT
# 1991 60062GBGTSJT
#
如果我在 Windows 机器上打开默认的 R GUI 并粘贴这五行,我会得到以下内容:
> #
> #
> 1991 60060GBNYPAN
Error: unexpected numeric constant in "1991 60060"
> # 1991 60061GBGTSJT
> # 1991 60062GBGTSJT
> #
>
当我将相同的五行代码粘贴到 Stack Overflow 问题窗口中时,我得到:
#
#
1991 60060GBNYPAN
# 1991 60061GBGTSJT
# 1991 60062GBGTSJT
#
如果我将包含该代码的文本文件打开到 gVim 7.4 我看到:
#^M
#
1991 60060GBNYPAN^M
# 1991 60061GBGTSJT^M
# 1991 60062GBGTSJT^M
#^M
gVim 7.4 中的所有字符都是蓝色的,除了第三行中的(第一)1991 是粉红色字体,60060GBNYPAN 是黑色字体。
我可以通过键入以下内容删除^M:
:%s/<ctrl>Q<ctrl>M//g<return>
从这里:Read csv file with hidden or invisible character ^M
但是,如果我随后通过单击:File - Save in gVim 7.4 来保存文件,然后打开文件,则内容现在如下所示:
## 1991 60060GBNYPAN# 1991 60061GBGTSJT# 1991 60062GBGTSJT#
如果我将这些内容粘贴到 R 我得到:
> #
> #
> 1991 60060GBNYPAN
Error: unexpected numeric constant in "1991 60060"
> # 1991 60061GBGTSJT
> # 1991 60062GBGTSJT
> #
>
和之前在gVim 7.4打开文件一样。
如果我再次将文件打开到gVim 7.4(在删除^M 并保存文件之后)我看到:
#
#
1991 60060GBNYPAN
# 1991 60061GBGTSJT
# 1991 60062GBGTSJT
#
字体的颜色没有改变,gVim 7.4 窗口底部有一条消息,内容如下:
<comment character does not work2.r" [unix] 6L, 74C 6,1 All
6,1 前后的空格数只是一个估计值。
发生了什么事?
我猜除了^M之外,文件中还有另一个隐藏字符,与^M不同,当我在gVim 7.4中打开文件时,默认情况下不会显示该字符。
感谢您的任何建议。我可能必须将原始文件加载到GitHub。我将在此处发布此消息后尝试这样做。
编辑
虽然我有一个GitHub 帐户并上传了文件,但时间太长了,我不记得如何上传这个最新的文件了。希望我能尽快上传文件。
如果我输入:
:set list<return> in gVim 7.4 删除 ^M 后我明白了:
$
#$
# $
1991 60060GBNYPAN$
# 1991 60061GBGTSJT$
# 1991 60062GBGTSJT$
#$
我认为:set list 应该显示所有隐藏的字符,但它显示的只是第二行# 和$ 之间的空格(如果我算上第一行$,则为第三行作为一行)。
【问题讨论】:
-
换行符有几种类型,其中一种必须在第一“行”的“#”和“1991”之间。
-
@JoshuaUlrich 谢谢。我也有同样的怀疑。希望我能弄清楚如何在 gVim 7.4 中看到它们并删除它们。
-
如果您希望在 R 中处理它们,请将它们替换为
ctrl-N。请注意,可能需要 read.table 的 comment.char。 -
@BondedDust 谢谢。我尝试选择文件中的所有文本,然后按
中的错误N 但这并没有消除 R.