我收到了其中一个错误。
Error: unexpected symbol in "<my code>"
Error: unexpected input in "<my code>"
Error: unexpected string constant in "<my code>"
Error: unexpected numeric constant in "<my code>"
Error: unexpected SPECIAL in "<my code>"
Error: unexpected '<some punctuation>' in "<my code>"
Error: unexpected '<reserved word>' in "<my code>"
错误是什么意思,如何修复?
一些简单的例子,重现错误,和常见的变体:
a a
## Error: unexpected symbol in "a a"
a\
## Error: unexpected input in "a\"
a""
## Error: unexpected string constant in "a"""
""1
## Error: unexpected numeric constant in """1"
%%
## Error: unexpected SPECIAL in "%%"
,
## Error: unexpected ',' in ","
=
## Error: unexpected '=' in "="
)
## Error: unexpected ')' in ")"
else
## Error: unexpected 'else' in "else"
3条答案
按热度按时间d7v8vwbk1#
这些错误意味着你试图运行的R代码或源代码在语法上不正确。也就是说,你有一个打字错误。
要解决这个问题,请仔细阅读错误信息。错误信息中提供的代码显示了R认为问题所在的位置。在原始代码中找到这一行,然后查找拼写错误。
防止再次出现错误的预防措施
避免语法错误的最好方法是编写时尚的代码。这样,当您输入错误时,问题将更容易被发现。在SO R tag info页面上有许多R风格指南。您也可以使用
formatR
包自动将代码格式化为更可读的内容。在RStudio中,键盘快捷键CTRL + SHIFT + A将重新格式化代码。考虑使用IDE或文本编辑器,突出显示匹配的圆括号和大括号,并以不同的颜色显示字符串和数字。
产生这些错误的常见语法错误
括号、大括号或中括号不匹配
如果你有嵌套的圆括号,大括号或方括号,很容易关闭它们太多或太少的时间。
乘法时缺少
*
**这是数学家常犯的错误。
不将if、for或返回值括在括号中
这是MATLAB用户经常犯的一个错误,在R中,
if
、for
、return
等都是函数,所以需要把它们的内容用括号括起来。代码不使用多行
尝试在一行中编写多个表达式,而不使用分号分隔它们会导致R失败,并使代码更难阅读。
else
从新行开始在
if
-else
语句中,关键字else
必须与if
块的结尾出现在同一行。=
而不是==
=
用于赋值和给函数参数赋值。==
测试两个值是否相等。参数之间缺少逗号
调用函数时,每个参数必须用逗号分隔。
文件路径不带引号
文件路径只是字符串。它们需要用双引号或单引号括起来。
字符串中的引号
当试图通过
system
向shell传递带引号的值,或者创建带引号的xPath
或sql
查询时,这是一个常见的问题。双引号字符串中的双引号需要转义。同样,单引号字符串中的单引号也需要转义。或者,您可以在双引号字符串中使用单引号而不转义,反之亦然。
使用花引号
所谓的“智能”引号对于R编程来说并不那么智能。
使用不带反引号的非标准变量名
?make.names
描述了有效变量名的构成。如果您创建了一个无效的变量名(可能使用assign
),则需要使用反引号访问它,这也适用于使用
check.names = FALSE
创建的数据框中的列名。它也适用于向函数传递运算符和其他特殊值。例如,查找
%in%
的帮助。来源补充非R代码
source
函数从一个文件运行R代码。如果你试图用它来读取你的数据,它会中断。可能你需要read.table
。RStudio桌面文件损坏
由于
.rstudio-desktop
文件损坏,RStudio用户have reported错误源错误。这些报告仅发生在2014年3月左右,因此可能是IDE的特定版本存在问题。可以使用支持页面上的the instructions重置RStudio。在数学图标注中使用表达式而不粘贴
当试图在图中创建数学标签或标题时,创建的表达式必须是语法上有效的数学表达式,如
?plotmath
页面所述。否则,内容应包含在粘贴调用中。p4tfgftt2#
对我来说,错误在于:
修复方法是在十六进制编辑器中打开脚本,并从文件中删除前3个字符。文件以UTF-8 BOM开头,Rscript似乎无法读取。
编辑:OP要求一个例子。在这里。
cxfofazt3#
如果你将代码复制粘贴到R中,它有时不会接受一些特殊字符,如“~”,而是会显示为“�”。因此,如果某个字符出现错误,请确保使用键盘输入字符,或者如果不起作用,请找到另一个网站进行复制粘贴。