R函数定义报'unexpected symbol'错误,请求排查代码问题
R函数报错"unexpected symbol"的原因及修复
问题出在你写的单行代码里,计算均值的表达式和return(mm)之间没有添加分隔符,导致R解析器把length(x[is.finite(x)])和return当成了一个连在一起的非法符号,所以才会抛出"unexpected symbol"错误。
R要求同一行里的多个语句必须用分号;分隔,或者把每个语句拆成单独一行,这样解析器才能正确识别每个独立的操作。
修正后的代码有两种写法:
- 加菲号分隔语句:
mymean<-function(x){mm<-sum(x[is.finite(x)])/length(x[is.finite(x)]);return(mm)}
- 拆分成多行(更易读,推荐用这种):
mymean<-function(x){ mm<-sum(x[is.finite(x)])/length(x[is.finite(x)]) return(mm) }
额外提一句:R函数里默认会返回最后一个表达式的结果,所以你也可以省去return语句,简化成:
mymean<-function(x){ sum(x[is.finite(x)])/length(x[is.finite(x)]) }
内容的提问来源于stack exchange,提问作者Nea
相关产品推荐
相关产品推荐

