gpt4 book ai didi

r - 为什么在\n中将\n换行符引入\n?

转载 作者:行者123 更新时间:2023-12-04 03:39:09 25 4
gpt4 key购买 nike

希望有人可以帮助我理解为什么我在R中创建的字符串向量中会出现错误的\n字符。

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

由于文件确实很宽,所以列标题很长-总共不到29,800个字符。我将它们作为简单的字符串向量传递进来:

column_names <- c(...)

我将在这里为您保留丑陋的转储,但我将整个内容都放在了 pastebin上。

当我发现我的某些子集返回0行时,正在清理并转换一些变量以进行分析。在迷惑了它之后(我拼错了吗?),它意识到以某种方式在我的列标题中引入了一堆'\n'换行符。

如果我遍历我创建的column_names向量
for (i in 1:length(column_names)) {
print(column_names[i])
}

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

SPECIAL\nEDUCATION SCIENCE Number Enrolled Science



我试图解决此问题的途径:

1)关于我的环境吗?我在R中使用常规脚本编辑器,但行会自动换行-但屏幕上的中断与\n字符的位置不匹配,对我而言,这表明它不是R脚本编辑器。

2)是否有GUI设置?做了一些 searching,但是什么也找不到。

3)有模式吗?似乎换行符大约每4000个字符插入一次。是否读过一些关于R/S原语的文章,以试图弄清楚这是否与基本R数据结构有关,但是很快就使我感到头疼。

我尝试将长字符串分解为 shorter chunks,然后将它们组合起来,这似乎解决了问题。
column_names.1 <- c(...)
column_names.2 <- c(...)
column_names_combined <- c(column_names.1, column_names.2)

因此,我有一个立即的解决方法,但很想知道这里实际发生的情况。

一些与字符向量问题有关的 posts建议我运行内存配置文件:
  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(Enterprise,SP 1,8 gigs RAM)上运行R 2.15.1(64位)R。
谢谢!

最佳答案

我怀疑这是一个错误。相反,您似乎遇到了控制台的已知限制。就像Section 1.8 - R commands, case sensitivity, etc.An Introduction to R中所说的:

Command lines entered at the console are limited[3] to about 4095 bytes (not characters).

[3] some of the consoles will not allow you to enter more, and amongst those which do some will silently discard the excess and some will use it as the start of the next line.



可以将命令放在文件中并对其进行 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", ...)

关于r - 为什么在\n中将\n换行符引入\n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13059083/

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