为何在R控制台可成功运行的代码在Rmarkdown代码块中返回‘Error: Incomplete Expression’错误?
解决R Markdown中plotly代码报"Incomplete expression"错误的问题
这问题我之前处理过好几次,本质是R Markdown的knitr解析器和R控制台对多行代码的解析规则不一样!
你在控制台运行没问题,是因为R控制台对跨行的管道操作(%>%)容错性很高,会自动识别后续行属于同一个表达式;但knitr在编译Rmd的时候,对代码的换行格式更严格——如果你的%>%在行尾,有时候解析器会误判这是一个不完整的表达式,直接抛出错误。
给你两个靠谱的解决办法:
把管道操作和后续方法写在同一行
调整后的代码如下:library(plotly) fig <- plot_ly(Data, x=~x1, y=~x2, z=~x3, color=~y, colors=c("darkblue","darkred")) %>% add_markers(size=1) fig保持换行但规范缩进
如果想保持代码可读性换行写,确保%>%留在行尾,并且后续代码行有正确的缩进(一般用2或4个空格),knitr就能正确识别了:library(plotly) fig <- plot_ly(Data, x=~x1, y=~x2, z=~x3, color=~y, colors=c("darkblue","darkred")) %>% add_markers(size=1) fig
另外,偶尔也可能是R会话缓存的小问题,要是上面的方法没用,试试重启R会话后再重新编译你的Rmd文件,基本就能解决了。
内容的提问来源于stack exchange,提问作者Paw in Data
相关产品推荐
相关产品推荐

