前面几节学了基本作图和美学映射,虽然有现成的代码,但是对于初学者,可能还是会经常碰到一些报错,这些其实是正常的,即使很熟练了也一样会遇到报错,区别是能否快速找到并解决问题,下面列几个常见的报错类型。
在运行一个R对话时,除了一些基础函数包会自动加载,其他的函数包都需要手动加载才能使用其中的函数,一般用library()函数,未加载R包会出现找不到函数的报错信息:
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class))
#没有library(ggplot2)
Error in ggplot(data = mpg) : could not find function "ggplot"
2. 输入错误
一般是字符或者符号错误,如中文字符:
library(tidyverse)ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class))
#这里hwy后的逗号应为英文字符,
Error: unexpected input in:> "ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy,"
大小写:
library(tidyverse)ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class))
#这里Class应为class
Error in FUN(X[[i]], ...) : object 'Class' not found
3. 句式不完整
如输入一个函数时的括号不完整;或者在一句完整的代码后多加了逗号,运行时会在控制台的下一行最左侧出现'+',提示代码输入不完整,可以写完整或者按Esc取消运行。
ggplot(data = mpg,
> ggplot(data = mpg,+
另外一种情况是使用ggplot2函数作图时,多个函数的连接是在函数的末尾,而不是开头:
library(ggplot2)
ggplot(data = mpg)
+ geom_point(mapping = aes(x = displ, y = hwy))
> library(ggplot2)
> ggplot(data = mpg)
> + geom_point(mapping = aes(x = displ, y = hwy))Error in `+.gg`:! Cannot use `+.gg()` with a single argument. Did you accidentally put + on a new line?Backtrace: 1. ggplot2:::`+.gg`(geom_point(mapping = aes(x = displ, y = hwy)))
可以看到这里的两行代码并未连接起来,会被当作两段代码分别运行。
4. 其他
遇到一个新的函数时,可以使用?function_name来快速查看函数的帮助文档,如?ggplot2;或者用光标选中函数后按F1键,很多帮助文档不仅有详细的参数说明,还有一些简单的例子,也可以粘贴这些例子在控制台一行一行的运行,可以加速自己对函数的理解。
有些复杂的问题也可以必应或者google等网站搜索,初学时遇到的很多bug其实都已经有很多人遇到过,并且已经解决了的,这样bug解多了以后就能快速定位并解决问题了。
学习一门语言是需要不断积累的,即使仅仅是为了用它完成某一项任务,引用这本书中的一句话:
You should also spend some time preparing yourself to solve problems before they occur. Investing a little time in learning R each day will pay off handsomely in the long run.
参考资料:
https://r4ds.had.co.nz/index.html
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。