最近在开发一个工具,里面涉及到一个功能,就是 Copy as R list,效果就是生成类似于下面的代码,
x <- list(
'A' = c('xxxx', 'yyyy', 'zzzz')
...
)
然后我粘贴其中一个结果到R的控制台运行时就出现了如下的错误
错误: unexpected symbol 于 "5G00880', 'CWA6G24660', 'CWA4G13010', 'CWA1G37360', ...
这就非常神奇,因为我发现这个错误不是在所有情况下都会出现,而且,如果我删除其中一行,那么整个代码也不会报错,也就是说,报错的就是下面这行
RH = c('CWA2G02750', 'CWA7G01260', 'CWA8G09010', 'CWA2G05130', 'CWA2G07420', 'CWA4G11390', 'CWA7G15220', 'CWA8G19950', 'CWA7G36700', 'CWA8G18840', 'CWA1G38000', 'CWA1G17410', 'CWA7G20910', 'CWA5G15300', 'CWA2G13230', 'CWA1G32970', 'CWA6G09950', 'CWA6G14170', 'CWA6G30860', 'CWA2G22380', 'CWA6G19140', 'CWA4G13350', 'CWA2G02800', 'CWA7G30120', 'CWA4G19430', 'CWA4G01340', 'CWA6G01880', 'CWA1G29000', 'CWA7G07960', 'CWA3G03070', 'CWA6G09410', 'CWA5G08080', 'CWA6G11630', 'CWA7G14880', 'CWA6G22690', 'CWA7G02250', 'CWA6G00680', 'CWA1G13370', 'CWA1G25880', 'CWA6G30400', 'CWA6G11910', 'CWA6G18840', 'CWA5G25370', 'CWA4G29710', 'CWA3G04360', 'CWA3G04700', 'CWA6G01470', 'CWA1G29550', 'CWA7G24680', 'CWA5G16230', 'CWA1G21090', 'CWA1G37190', 'CWA6G24050', 'CWA8G15300', 'CWA4G16760', 'CWA4G13630', 'CWA8G01740', 'CWA1G41860', 'CWA7G11890', 'CWA3G15650', 'CWA4G25800', 'CWA7G32550', 'CWA3G29400', 'CWA5G30650', 'CWA8G25820', 'CWA1G15850', 'CWA2G12520', 'CWA4G00660', 'CWA6G13630', 'CWA1G32320', 'CWA2G05180', 'CWA6G21870', 'CWA1G40440', 'CWA1G17450', 'CWA6G13740', 'CWA2G10170', 'CWA1G43480', 'CWA5G19650', 'CWA2G21830', 'CWA2G07910', 'CWA1G40710', 'CWA1G10820', 'CWA8G23390', 'CWA6G23510', 'CWA5G14060', 'CWA8G00750', 'CWA8G22100', 'CWA7G31820', 'CWA6G04060', 'CWA1G36440', 'CWA6G00490', 'CWA6G11850', 'CWA5G08950', 'CWA8G18450', 'CWA5G03150', 'CWA2G07370', 'CWA1G45130', 'CWA3G12690', 'CWA1G29890', 'CWA1G13190', 'CWA2G21840', 'CWA3G20140', 'CWA7G20240', 'CWA6G34670', 'CWA8G04580', 'CWA1G33860', 'CWA4G11960', 'CWA2G26230', 'CWA5G03580', 'CWA7G20640', 'CWA3G07430', 'CWA6G30680', 'CWA7G18760', 'CWA1G38670', 'CWA6G30100', 'CWA8G22430', 'CWA1G21060', 'CWA8G03580', 'CWA7G22610', 'CWA7G23800', 'CWA6G07280', 'CWA5G16350', 'CWA8G10930', 'CWA6G32410', 'CWA2G27880', 'CWA6G09400', 'CWA5G11790', 'CWA3G02240', 'CWA6G01150', 'CWA6G24570', 'CWA6G35000', 'CWA3G08270', 'CWA7G28110', 'CWA1G14100', 'CWA2G19410', 'CWA3G09070', 'CWA7G01820', 'CWA1G13050', 'CWA6G25360', 'CWA7G19090', 'CWA6G08190', 'CWA1G45160', 'CWA1G27210', 'CWA5G02180', 'CWA1G06520', 'CWA8G01890', 'CWA8G25860', 'CWA4G08730', 'CWA3G33370', 'CWA5G26830', 'CWA4G10140', 'CWA1G35890', 'CWA1G12340', 'CWA8G23070', 'CWA2G04710', 'CWA5G29160', 'CWA7G00510', 'CWA5G30500', 'CWA3G07020', 'CWA6G05800', 'CWA1G09830', 'CWA7G17750', 'CWA1G44890', 'CWA7G35390', 'CWA5G11740', 'CWA3G34150', 'CWA7G38190', 'CWA6G04380', 'CWA8G18370', 'CWA3G27960', 'CWA1G39450', 'CWA7G23170', 'CWA5G28390', 'CWA1G17920', 'CWA5G06060', 'CWA7G16770', 'CWA4G02270', 'CWA6G17830', 'CWA7G33540', 'CWA3G07960', 'CWA4G13690', 'CWA5G30280', 'CWA4G13980', 'CWA1G38700', 'CWA6G31630', 'CWA4G16520', 'CWA8G19260', 'CWA5G13010', 'CWA3G17590', 'CWA3G06720', 'CWA3G20690', 'CWA1G41080', 'CWA7G23770', 'CWA5G07290', 'CWA7G26290', 'CWA8G28140', 'CWA2G01790', 'CWA7G23650', 'CWA4G25030', 'CWA4G20180', 'CWA1G03940', 'CWA2G10830', 'CWA7G25580', 'CWA6G10760', 'CWA3G12880', 'CWA8G22160', 'CWA8G25870', 'CWA6G25270', 'CWA1G06770', 'CWA1G41460', 'CWA7G25980', 'CWA6G12670', 'CWA3G34790', 'CWA6G20630', 'CWA1G13230', 'CWA6G10630', 'CWA8G20610', 'CWA4G11480', 'CWA7G36850', 'CWA4G02430', 'CWA1G02660', 'CWA1G01860', 'CWA7G24590', 'CWA7G10450', 'CWA2G07690', 'CWA7G21240', 'CWA8G01690', 'CWA3G07450', 'CWA6G20010', 'CWA5G06330', 'CWA4G29410', 'CWA1G33360', 'CWA7G23690', 'CWA7G23670', 'CWA3G24300', 'CWA8G18360', 'CWA3G08350', 'CWA7G29470', 'CWA3G34300', 'CWA5G07770', 'CWA4G17920', 'CWA2G03450', 'CWA3G16700', 'CWA7G17520', 'CWA3G19700', 'CWA6G23610', 'CWA6G35010', 'CWA5G26540', 'CWA7G21680', 'CWA7G18030', 'CWA1G26930', 'CWA4G29540', 'CWA8G10330', 'CWA1G24470', 'CWA1G10940', 'CWA2G29630', 'CWA3G02510', 'CWA1G42890', 'CWA7G37800', 'CWA4G03990', 'CWA4G19280', 'CWA4G02030', 'CWA3G26770', 'CWA8G12230', 'CWA5G15290', 'CWA3G15010', 'CWA7G02590', 'CWA5G01690', 'CWA7G32420', 'CWA8G26790', 'CWA3G20430', 'CWA7G12580', 'CWA8G22320', 'CWA4G22460', 'CWA3G19870', 'CWA5G00880', 'CWA6G24660', 'CWA4G13010', 'CWA1G37360', 'CWA4G15220', 'CWA2G05000', 'CWA4G20150', 'CWA1G08640', 'CWA3G22400', 'CWA1G09720', 'CWA1G17970', 'CWA3G00370', 'CWA6G09360', 'CWA4G10530', 'CWA7G17760', 'CWA4G26100', 'CWA1G05950', 'CWA7G28690', 'CWA2G17950', 'CWA1G05940', 'CWA4G12920', 'CWA6G10000', 'CWA3G22380', 'CWA7G36090', 'CWA7G33300', 'CWA1G30280', 'CWA8G15110', 'CWA8G18700', 'CWA2G02580', 'CWA7G27820', 'CWA8G22440', 'CWA3G09870', 'CWA2G21040', 'CWA7G29940', 'CWA6G26710', 'CWA6G13790', 'CWA5G03930', 'CWA7G24670', 'CWA6G35230', 'CWA6G29820', 'CWA7G20810', 'CWA5G11590', 'CWA4G10200', 'CWA7G24400', 'CWA3G32690', 'CWA2G22500', 'CWA1G05730', 'CWA4G29220', 'CWA8G16450', 'CWA5G11180', 'CWA8G17390', 'CWA7G24450', 'CWA7G25510', 'CWA4G06050', 'CWA1G30650', 'CWA8G09830', 'CWA6G08000', 'CWA6G33620', 'CWA5G19660', 'CWA2G22690', 'CWA7G35550', 'CWA4G09740', 'CWA2G25920', 'CWA8G20490', 'CWA4G12850', 'CWA1G24120', 'CWA1G18080', 'CWA4G25020', 'CWA7G14580', 'CWA8G16410', 'CWA1G16560', 'CWA8G23960', 'CWA3G11640', 'CWA1G37200', 'CWA4G00680', 'CWA6G22850', 'CWA4G27420', 'CWA7G23740', 'CWA1G16480', 'CWA4G27630', 'CWA6G23960', 'CWA6G06250', 'CWA7G19320', 'CWA4G08590', 'CWA3G19750', 'CWA2G18070')
直接问AI,可能给的答案是: “是由于你的代码在未正确结束前,突然被插入了一些文本或表达式,破坏了R语言语法结构。” 但是,这个代码是我通过另一个代码生成的,是不可能存在语法错误的。
最后,我突然想到一个事情,会不会是输入太长了?所以,我试探性的问了下面这个问题,才终于确定了真正的问题所在,那就是R的控制台,单行只能接受大概4095 bytes,我粘贴的太长,后续就直接被截断了。
如果你直接读取文本是不可能出现这个错误,这也是极其罕见的情况。整理这篇笔记的时候,我想到了之前我用Shell写脚本也出现过类似的问题, 我将ls的结果存到一个变量中,结果一个ls的内容太多了,导致运行失败。每当遇到这些bug,都让我想到在酒吧点炒饭的笑话,你永远不知道的你用户会怎么使用你的程序。