R-基础分享【2】-attach和with

上一次说了数据结构中的数据框,这一次就说说调用数据框中数据的两个函数——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语言,

你可能感兴趣的:(R-基础分享【2】-attach和with)