【问题标题】:Create file name based on the functions arguments and the content based on the condition in the function - R根据函数参数创建文件名,并根据函数中的条件创建文件名 - R
【发布时间】:2021-10-07 17:27:17
【问题描述】:

我想在函数内部创建一些名称来自函数参数的文件。文件内容将根据在正文函数中读取的文件中的某些条件创建

  set.seed(123)
  dt <- data.frame(col1_mean = sample(1:10, 10, TRUE), col2_n = sample(1:10, 10, TRUE), Col3 = c("ID1", "ID1","ID2", "ID1","ID2", "ID1","ID2", "ID1",  "ID1", "ID1"), col4 = sample(1:10, 10, TRUE))
  get_file = function (var1, var2) {
  #create file name based on the var1 and var2 and the content based on the condition in dt
  paste0("my_text_", var1, "_", var2) =   dt[Col3 == paste0(var2)]  # select only rows with ID given by var2
  
  }

例如,get_file("AB", "ID1") 应该创建文件:my_text_AB_ID1,它将是 dt1 的子集,仅包含 Col3 中 ID1 的行。

上面的代码不起作用。任何想法 ? 谢谢

【问题讨论】:

    标签: r subset


    【解决方案1】:

    您可以使用 assign 执行此操作,但请注意,从函数内将对象写入全局环境不是一个好习惯。

    get_file = function (var1, var2) {
    
      assign(paste0("my_text_", var1, "_", var2), dt[dt$Col3 == var2, ],
             envir = parent.frame())
    }
    
    
    get_file("AB", "ID1")
    my_text_AB_ID1
    #   col1_mean col2_n Col3 col4
    #1          3      5  ID1    9
    #2          3      3  ID1    3
    #4          2      9  ID1    1
    #6          5      3  ID1    5
    #8          6     10  ID1    7
    #9          9      7  ID1    9
    #10        10     10  ID1    9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-27
      • 2021-07-13
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2023-01-10
      • 2019-11-06
      相关资源
      最近更新 更多