R语言中function(x)单行代码报'unexpected symbol',多行正常求原因
R单行代码报错原因解析
你的单行代码报错核心是语句分隔符缺失。R语言中,多个语句写在同一行时,必须用分号;明确分隔不同执行单元,否则解析器无法正确区分独立代码块。
看你出错的单行代码:
my_quantile <- function(x){r <- quantile(x, c(0,0.5,1))data.frame(minimum=r[1],median=r[2],maximum=r[3])} murders %>% filter(region == "West") %>% summarize(my_quantile(rate))
函数内部的r <- quantile(...)和data.frame(...)两个语句直接拼接,R会把它们当成连续的无效表达式,自然识别不了data.frame这个符号,抛出unexpected symbol错误。
而多行写法里,换行本身就起到了语句分隔的作用,R能正确识别每一行是独立执行步骤,因此可以正常运行。
修正后的单行代码
只需在函数内的两个语句之间加个分号,同时函数定义和后续管道代码之间也建议用分号分隔,就能正常运行:
my_quantile <- function(x){r <- quantile(x, c(0,0.5,1)); data.frame(minimum=r[1],median=r[2],maximum=r[3])}; murders %>% filter(region == "West") %>% summarize(my_quantile(rate))
内容的提问来源于stack exchange,提问作者Learner_24
相关产品推荐
相关产品推荐

