matlab创建符号常量出错,错误:代码中意外的符号/输入/字符串常量/数值常数/特殊...
這些錯(cuò)誤意味著您試圖運(yùn)行的R代碼或源代碼在語(yǔ)法上是不正確的。也就是說(shuō),你有一個(gè)錯(cuò)誤。
若要修復(fù)此問(wèn)題,請(qǐng)仔細(xì)閱讀錯(cuò)誤消息。錯(cuò)誤消息中提供的代碼顯示了R認(rèn)為問(wèn)題所在的地方。在原始代碼中找到這一行,并查找錯(cuò)誤。
預(yù)防措施防止你再次犯錯(cuò)誤
避免語(yǔ)法錯(cuò)誤的最好方法是編寫(xiě)時(shí)髦的代碼。這樣,當(dāng)你輸入錯(cuò)誤的東西時(shí),問(wèn)題就會(huì)更容易發(fā)現(xiàn)。有許多從R標(biāo)簽信息一頁(yè)。您還可以使用formatR自動(dòng)將代碼格式化為更具可讀性的包。在RStudio中,鍵盤(pán)快捷方式克特?+?換檔?+?A將重新格式化您的代碼。
考慮使用IDE或文本編輯器來(lái)突出顯示匹配的括號(hào)和大括號(hào),并以不同的顏色顯示字符串和數(shù)字。
產(chǎn)生這些錯(cuò)誤的常見(jiàn)語(yǔ)法錯(cuò)誤
不匹配的括號(hào)、大括號(hào)或括號(hào)
如果您有嵌套的括號(hào)、大括號(hào)或括號(hào),那么很容易關(guān)閉它們太多或太少。{}}##?Error:?unexpected?'}'?in?"{}}"{{}}?#?OK
失蹤?*?做乘法時(shí)
這是數(shù)學(xué)家們常見(jiàn)的錯(cuò)誤。5x
Error:?unexpected?symbol?in?"5x"5*x?#?OK
不包裝括號(hào)中的if、for或返回值
這是MATLAB用戶常見(jiàn)的錯(cuò)誤。在R,if,?for,?return等等,都是函數(shù),所以您需要將它們的內(nèi)容放在括號(hào)中。if?x?>?0?{}##?Error:?unexpected?symbol?in?"if?x"if(x?>?0)?{}?#?OK
不對(duì)代碼使用多行代碼
試圖在一行上寫(xiě)入多個(gè)表達(dá)式,而不使用分號(hào)分隔它們,會(huì)導(dǎo)致R失敗,并使您的代碼更難閱讀。x?+?2?y?*?3##?Error:?unexpected?symbol?in?"x?+?2?y"x?+?2;?y?*?3?#?OK
else從一條新的路線開(kāi)始
在if-else語(yǔ)句,關(guān)鍵字else必須顯示在與if封鎖。if(TRUE)?1else?2##?Error:?unexpected?'else'?in?"else"????if(TRUE)?1?else?2?#?OKif(TRUE)?{
1}?else????????????#?also?OK{
2}
=而不是==
=用于賦值和給函數(shù)參數(shù)賦值。==測(cè)試兩個(gè)值是否相等。if(x?=?0)?{}##?Error:?unexpected?'='?in?"if(x?="????if(x?==?0)?{}?#?OK
參數(shù)之間缺少逗號(hào)
在調(diào)用函數(shù)時(shí),每個(gè)參數(shù)必須用逗號(hào)分隔。c(1?2)##?Error:?unexpected?numeric?constant?in?"c(1?2"c(1,?2)?#?OK
不引用文件路徑
文件路徑只是字符串。它們需要用雙引號(hào)或單引號(hào)包裝。path.expand(~)##?Error:?unexpected?')'?in?"path.expand(~)"path.expand("~")?#?OK
字符串中的引號(hào)
當(dāng)試圖將引用的值傳遞給shell時(shí),這是一個(gè)常見(jiàn)的問(wèn)題。system,或創(chuàng)建引用xPath或sql查詢。
雙引號(hào)中的雙引號(hào)需要轉(zhuǎn)義。同樣,需要轉(zhuǎn)義單個(gè)引號(hào)字符串中的單引號(hào)。或者,您可以在不轉(zhuǎn)義的雙引號(hào)字符串中使用單引號(hào),反之亦然。"x"y"
##?Error:?unexpected?symbol?in?""x"y"
"x\"y"?#?OK'x"y'??#?OK
使用卷曲引號(hào)
所謂的“智能”引號(hào)對(duì)于R編程來(lái)說(shuō)并不是那么聰明。path.expand(“~”)##?Error:?unexpected?input?in?"path.expand(“"????path.expand("~")?#?OK
使用不帶反引號(hào)的非標(biāo)準(zhǔn)變量名
?make.names描述構(gòu)成有效變量名的內(nèi)容。如果您創(chuàng)建一個(gè)無(wú)效的變量名(使用assign(也許),那么你需要用反引號(hào)訪問(wèn)它,assign("x?y",?0)x?y##?Error:?unexpected?symbol?in?"x?y"`x?y`?#?OK
這也適用于用check.names = FALSE.dfr?
它也適用于將運(yùn)算符和其他特殊值傳遞給函數(shù)時(shí)。例如,查找?guī)椭?in%.?%in%##?Error:?unexpected?SPECIAL?in?"?%in%"?`%in%`?#?OK
采購(gòu)非R碼
這個(gè)source函數(shù)從文件中運(yùn)行R代碼。如果你試圖用它來(lái)讀取你的數(shù)據(jù),它就會(huì)崩潰。也許你想read.table.source(textConnection("x?y"))##?Error?in?source(textConnection("x?y"))?:?##???textConnection("x?y"):1:3:?unexpected?symbol##?1:?x?y##???????^
損壞的RStudio桌面文件
RStudio用戶報(bào)告由于損壞引起的錯(cuò)誤源錯(cuò)誤.rstudio-desktop檔案。這些報(bào)告只發(fā)生在2014年3月左右,因此這可能是IDE特定版本的一個(gè)問(wèn)題。可以使用指示在支持頁(yè)面上。
在數(shù)學(xué)圖注釋中使用沒(méi)有粘貼的表達(dá)式
當(dāng)試圖在圖中創(chuàng)建數(shù)學(xué)標(biāo)簽或標(biāo)題時(shí),創(chuàng)建的表達(dá)式必須是語(yǔ)法上有效的數(shù)學(xué)表達(dá)式,如?plotmath一頁(yè)。否則,內(nèi)容應(yīng)該包含在對(duì)粘貼的調(diào)用中。plot(rnorm(10),?ylab?=?expression(alpha?^?*)))##?Error:?unexpected?'*'?in?"plot(rnorm(10),?ylab?=?expression(alpha?^?*
"plot(rnorm(10),?ylab?=?expression(paste(alpha?^?phantom(0),?"*")))?#?OK
總結(jié)
以上是生活随笔為你收集整理的matlab创建符号常量出错,错误:代码中意外的符号/输入/字符串常量/数值常数/特殊...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java结构化语言,如何让Java代码流
- 下一篇: matlab模糊控制工具箱使用和模糊控制