为什么和在哪里\ n换行符介绍c()?

希望有人能帮助我理解为什么错误\ n字符出现在我在R中创build的string的向量中。

尝试导入和清理宽度固定的非常宽的数据文件( http://www.state.nj.us/education/schools/achievement/2012/njask6/ ,“用于数据运行的文本文件”)。 跟着使用read.fwf的UCLA教程和这个出色的SO问题在导入后给列名称。

由于该文件非常宽,列标题是LONG – 所有文件一起,只有29,800个字符。 我把它们作为一个简单的string向量传递:

column_names <- c(...) 

我会把这个丑陋的垃圾堆放在这里,但是我把所有的东西都放在了pastebin上 。

当我注意到我的一些子集正在返回0行时,正在清理并转换一些variables进行分析。 在困惑之后(我拼错了什么?)它意识到,不知怎的,一串'\ N'换行符被引入到我的列标题中。

如果我遍历我创build的column_names向量

 for (i in 1:length(column_names)) { print(column_names[i]) } 

我看到第81行中间的第一个换行符 –

SPECIAL \ nEDUCATION SCIENCE编号登记科学

我试图解决这个问题的途径:

1)关于我的环境吗? 我在R中使用了普通的脚本编辑器,而且我的行还是换行 – 但是屏幕上的分隔符与\ n字符的位置不匹配,这对我来说意味着它不是R脚本编辑器。

2)是否有GUI设置? 做了一些search ,但找不到任何东西。

3)有没有一种模式? 似乎换行符每插入大约4000个字符。 有没有读过R / S原语来试图弄清楚这是否与基本的R数据结构有关,但是很快就在我头上。

我试图把长串分成较短的块 ,然后把它们合并起来,似乎解决了这个问题。

 column_names.1 <- c(...) column_names.2 <- c(...) column_names_combined <- c(column_names.1, column_names.2) 

所以我有一个即时的解决方法,但很想知道这里实际发生了什么。

一些与字符向量问题有关的post提示我运行内存configuration文件:

  memory.profile() NULL symbol pairlist closure environment promise 1 9572 220717 4734 1379 5764 language special builtin char logical integer 63932 165 1550 18935 10302 30428 double complex character ... any list 2039 1 60058 0 0 20059 expression bytecode externalptr weakref raw S4 1 16553 725 150 151 1162 

我在Windows 7上运行R 2.15.1(64位)R(Enterprise,SP 1,8 g RAM)。 谢谢!

我怀疑这是一个错误。 相反,它看起来像是遇到了控制台已知的局限性。 正如它在第1.8节中所述 – R 的介绍 ,区分大小写的 R介绍 :

在控制台input的命令行是有限的[3]到大约4095字节(不是字符)。

[3]一些游戏机不允许你进入更多的游戏机,其中有些游戏机会默默地放弃多余的游戏机,有些游戏机将把它作为下一行的开始。

将命令放在一个文件中,并将其source ,或者通过在适当的点(在逗号之间)插入自己的换行符将代码分成多行。 例如:

 column_names <- c("County Code/DFG/Aggregation Code", "District Code", "School Code", "County Name", "District Name", "School Name", "DFG", "Special Needs", "TOTAL POPULATION TOTAL POPULATION Number Enrolled LAL", ...)