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

作者: CharlesSun9 | 来源:发表于2016-05-25 00:18 被阅读573次

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

      本文链接:https://www.haomeiwen.com/subject/dftarttx.html