我编写函数时出现意外的符号错误

时间:2016-12-31 16:06:40

标签: r

这是代码

reg<-function(y,x){x<-as.matrix(x) x<-cbind(Intercept=1,x) solve(t(x)%*%x)%*%t(x)%*%y} 
  

错误:&#34; reg&lt; -function(y,x){x&lt; -as.matrix(x)x&#34;

中的意外符号

即使我提供换行符并且代码元素之间有空格

,我也会得到相同的错误

2 个答案:

答案 0 :(得分:0)

这对我有用:

reg<-function(y,x){
     x<-as.matrix(x); 
     x<-cbind(Intercept=1,x);
     solve(t(x)%*%x)%*%t(x)%*%y;
} 

答案 1 :(得分:0)

抛出此错误是因为在解析完成语句x<-as.matrix(x)之后没有正确的分隔符。 R的语法不能将空格识别为合适的分隔符,因此下一个非空格字符需要是行尾(EOL)或分号(;)。我看到Travis已经展示了一个仅使用行尾分隔符的代码解决方案。您的功能定义的单行版本将成功:

reg<-function(y,x){x<-as.matrix(x); x<-cbind(Intercept=1,x); solve(t(x)%*%x)%*%t(x)%*%y}

请注意,这不会检查代码中的语义正确性,但只是解析器声明已遵​​循语法规则的语句。那个&#34;意想不到的符号&#34;错误消息始终表示存在不正确放置或缺少的括号,大括号,分号或逗号。在这种情况下,实际的意外符号是x。您可以使用以下命令重现错误:

> x<-as.matrix(x) x
Error: unexpected symbol in "x<-as.matrix(x) x"