美文网首页R语言 入门到精通
R语言 变量赋值和提取 获取环境中的变量并赋值 assign和g

R语言 变量赋值和提取 获取环境中的变量并赋值 assign和g

作者: 果蝇的小翅膀 | 来源:发表于2021-04-13 09:36 被阅读0次

    目的:

    在进行循环的时候,经常需要把环境中的变量通过字符的形式提取出来并赋值给新的变量,涉及到环境变量和字符的转换问题。在R语言中,,可以通过assign()get()这两个函数操作。

    get:返回和字符串同名的变量的值
    assign:将字符串变量的字符进行复制

    get和assign是互为镜像的两个函数。

    实例:

    • 1、assign的用法
      假设有100个文件,分别为1.txt,2.txt到100.txt,现在吧这个100个文件分别读取,存到不同的变量名中:
    n = 100
    vari = "data"
    
    for(i in n){
        file_name = sprintf("%s.txt", i)
        x_name = sprintf("%data_s", i)
        assign(x_name,  read.table( file_name) )
    }
    
    

    这样在环境中,就生成了100个变量,分别为 data_1到data_100。因此assign可以进行批量的赋值,并且有规律的控制变量名

    • 2、get的用法
      get是assign的逆过程,我们可以通过ls()获得环境中的变量的名称,然后通过get可以获得对应的环境变量中的值。

    比如我们需要把上面的data_1到data_100的变量存成rda

    #查看以data开通的变量
    vars = ls(pattern = "^data")
    
    for(i in vars){
        save( get(i), file = sprintf(".rda", i) )
    }
    

    这样我们就把data开头的数据通循环的方式,写入到了rda的数据中。

    参考文献:

    https://zhuanlan.zhihu.com/p/30383865

    相关文章

      网友评论

        本文标题:R语言 变量赋值和提取 获取环境中的变量并赋值 assign和g

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