最大线路长度
根据R核心团队手册,An Introduction to R,
在控制台输入的命令行限制为4到4095个字节(不是字符).
有关的脚注如下:
有些控制台不允许你输入更多的内容,而在那些做的控制台中,有些会默默地丢弃多余的内容,有些会把它当作下一行的开始.
在IDE中,这种行为似乎不一致.我刚刚创建了一行220k ASCII字符(所以220k字节),并能够在VS代码中解析它.>>
# real version repeats this string until it is over 220k characters long
nchar(
"very_long_string_very_long_string_very_long_string_very_long_string_"
)
VS代码输出:
[1] 221760
但我在RStudio中try 了相同的行,但它无法处理它.RStudio输出:
tringvery_long_stringvery_long_stringvery_long_string"
+ )
+
+
RStudio似乎正在展示脚注中的行为,并默默地丢弃多余的部分(包括最后的引用).正如An Introduction to R所说:
如果一个命令在一行的末尾没有完成,R将给出不同的提示符,默认情况下在第二行和后续行上为+
,并继续读取输入,直到命令在语法上完成.
在任何情况下,尽管在R手册中,这个问题似乎与IDE有关.我测试了VS Code是否可以处理长度超过100万个字符的行(因此超过1MB),并且它可以.如果需要的话,也许还有另一个使用VS代码的原因,尽管我想不出有什么好的理由让代码中有这么长的一行.
最大向量长度
矢量也有一个最大长度,这取决于你是否使用32/64位R,R版本和矢量类型.它可能是2^52—1个元素的整数或数字向量,在一台不太老的计算机上有一个相当现代的R版本.参见R内部的Long vectors.