《R语言实战》中ggplot2之Salaries数据集调用
2019-07-18 本文已影响0人
Ashu
学会用R语言中的ggplot2这个包做图非常重要,这两天学习《R语言实战》第19章ggplot2 做图,当把第409页给的代码敲到RStudio里,运行时报错:不存在Salaries数据集,图没法画出来,接下来很多图形的代码运用
Salaries数据集做示例,如果这一步报错,往后的操作也将报错,可能是哪里出了错,花了很多时间尝试解决。书中的代码和运行结果如下:
data(Salaries,package = "car")
library(ggplot2)
ggplot(Salaries,aes(x=rank,y=salary))+
geom_boxplot(fill="cornflowerblue",
color="black",notch=TRUE)+
geom_point(position = "jitter",color="blue",alpha=.5)+
geom_rug(side="1",color="black")
###运行时,在console显示报错:
> data(Salaries,package = "car")
Warning message:
In data(Salaries, package = "car") : 没有‘Salaries’这个数据集
> library(ggplot2)
> ggplot(Salaries,aes(x=rank,y=salary))+
+ geom_boxplot(fill="cornflowerblue",
+ color="black",notch=TRUE)+
+ geom_point(position = "jitter",color="blue",alpha=.5)+
+ geom_rug(side="1",color="black")
Error in ggplot(Salaries, aes(x = rank, y = salary)) :
找不到对象'Salaries'
屏幕快照 2019-07-17 16.41.49.png
- 刚开始怀疑自己代码输错了,细细检查好多遍,包括把大小写互换,试了很多种方法,运行依然报错,跑到R in Action官方www.manning.com/RinActionSecondEdition
找第一次出现Salaries的地方,认真查看解释,并把原始代码复制到RStudio里运行:
- 官网的代码如下
data(Salaries, package="car")
library(ggplot2)
ggplot(Salaries, aes(x=rank, y=salary)) +
geom_boxplot(fill="cornflowerblue",
color="black", notch=TRUE)+
geom_point(position="jitter", color="blue", alpha=.5)+
geom_rug(side="l", color="black")
- 运行后,在console处依旧出现报错,
data(Salaries, package="car")
Warning message:
In data(Salaries, package = "car") : 没有‘Salaries’这个数据集
> library(ggplot2)
> ggplot(Salaries, aes(x=rank, y=salary)) +
+ geom_boxplot(fill="cornflowerblue",
+ color="black", notch=TRUE)+
+ geom_point(position="jitter", color="blue", alpha=.5)+
+ geom_rug(side="l", color="black")
Error in ggplot(Salaries, aes(x = rank, y = salary)) :
找不到对象'Salaries'
-
自己从书上抄的代码和官网找的代码都显示报错:没有‘Salaries’这个数据集。
屏幕快照 2019-07-17 16.51.42.png -
书中很多图都使用‘Salaries’这个数据集,如果不存在,怎么会做出后面的图,于是我单独 运行Salaries,发现它是有内容的.
Salaries
屏幕快照 2019-07-17 16.33.49.png
- 既然 Salaries数据集存在,为什么出现报错呢?我在Google或百度搜‘Salaries’这个数据集的代码,找了很多篇博文都找不到,终于看到一篇文(https://zhuanlan.zhihu.com/p/29898083)
)介绍car包中含有Salaries数据集,于是我就安装和加载car包,car包是依赖于carData包,所以我把两个包都安装和加载。
屏幕快照 2019-07-17 17.14.33.png
install.packages("carData")
install.packages("car")
library(carData)
library(car)
data(Salaries, package="car")
library(ggplot2)
ggplot(Salaries, aes(x=rank, y=salary)) +
geom_boxplot(fill="cornflowerblue",
color="black", notch=TRUE)+
geom_point(position="jitter", color="blue", alpha=.5)+
geom_rug(side="l", color="black")
###console 输出的结果
> library(carData)
> library(car)
> data(Salaries, package="car")
Warning message:
In data(Salaries, package = "car") : 没有‘Salaries’这个数据集
> library(ggplot2)
> ggplot(Salaries, aes(x=rank, y=salary)) +
+ geom_boxplot(fill="cornflowerblue",
+ color="black", notch=TRUE)+
+ geom_point(position="jitter", color="blue", alpha=.5)+
+ geom_rug(side="l", color="black")
Warning: Ignoring unknown parameters: side
屏幕快照 2019-07-17 18.39.06.png
- 虽然出现Warning message,但是能运行出图,图与书中或官网上的图一致。我试着
把报错的代码注释掉,依然能画出图。
library(car)
#data(Salaries, package="car") 用#把这行代码注释掉
library(ggplot2)
ggplot(Salaries, aes(x=rank, y=salary)) +
geom_boxplot(fill="cornflowerblue",
color="black", notch=TRUE)+
geom_point(position="jitter", color="blue", alpha=.5)+
geom_rug(side="l", color="black")
屏幕快照 2019-07-17 18.52.48.png
总结:
对于大牛来说,是个简单的小问题,但是对我这位新手来说,独立思考和解决问题,能激发和鼓励我继续修行R语言,以后书上给一个数据集或者函数,使用前加载它关联的包(没安装就安装),遇到问题就Google或百度,独立搜索和解决,印象深刻,希望我的分享能帮到初学者。
课程分享
生信技能树全球公益巡讲
(https://mp.weixin.qq.com/s/E9ykuIbc-2Ja9HOY0bn_6g)
B站公益74小时生信工程师教学视频合辑
(https://mp.weixin.qq.com/s/IyFK7l_WBAiUgqQi8O7Hxw)