上一次说了数据结构中的数据框,这一次就说说调用数据框中数据的两个函数——attach和with。
选取某个数据框中的某个特定变量的符号为:$
有代码:
summary(mtcars$mpg)
plot(mtcars$mpg,mtcars$disp)
plot(mtcars$mpg,mtcar$wt)
多次输入mtcars$真的很令人反感,所以这里我们用到了attach( )和with( )。
-
attach( )
把以上代码写成:
attach(mtcars)
summary(mpg)
plot(mpg,disp)
plot(mpg,wt)
detach(mtcars)
其中attach( )函数是将数据框添加到R的搜索路径中,detach( )是将数据框从搜索路径中移除。
注:若在绑定数据框之前,环境中已经有要提取的某个特定变量,则会出现错误!For example:
> mpg<-c(25,36,47)
>attach(mtcars)
The following object is masked by .GlobalEnv:
mpg
> plot(mpg,wt)
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
>mpg
[1] 25 36 47
所以,with( )函数可以避免上述问题。
- with( )
重写上例:
with(mtcars,{
summary(mpg,disp,wt)
plot(mpg,disp)
plot(mpg,wt)
})
注:如果大括号内只有一条语句,那么大括号可以省略
函数with( )有一个局限性,就是赋值仅仅在括号内生效。
有代码:
> with(mtcars,{
stats<-summary(mpg)
stats
})
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.42 19.20 20.09 22.80 33.90
>stats
Error: object 'stats' not found
**但是你要创建在with( )结构以外的对象,可以使用<<-替代<-就可实现!**
For example:
>with(mtcars,{
nokeepstats<-summary(mpg)
keepstats<<-summary(mpg)
})
> nokeepstats
Error: object 'nokeepstats' not found
> keepstats
Min. 1st Qu. Median Mean 3rd Qu. Max.
10.40 15.42 19.20 20.09 22.80 33.90
本文代码来自于 《R语言实战》 R in Action。 作为一个R语言菜鸟,欢迎大家与我一同学习R语言,
网友评论