【问题标题】:R: Make character string refer to an objectR:使字符串引用一个对象
【发布时间】:2016-03-02 15:20:36
【问题描述】:

我有一个很大的文件列表(file1file2file3 等),对于每个分析,我想引用此列表中的两个文件(例如 function(file1,file2))。当我尝试使用paste0("file", pairs[1,x] 执行此操作时,我得到字符串"file1" 而不是对象file1

如何引用对象而不是创建字符串?

非常感谢!

补充说明:

  • pairs 是一个 2xn 矩阵,其中每一列是用于一次分析的文件组合(例如,pairs[1,1] = 1 和 pairs[2,1] = 2 用于比较 file1 和 file2)。

【问题讨论】:

  • 文件实际上是否在正确的 R 列表对象中?如果不是,他们可能应该是。包含重要信息的变量名称不是一个好策略。您可以使用get() 通过字符串获取变量的值,但这通常表明 R 中的设计选择不佳。
  • 不清楚你想对这些文件做什么。也许看到?connections
  • 如果你写的是真的并且你有一个list的文件file1, file2, file3, ...,并且list被命名(如果没有,参见例如?setNames,那么你可以做例如my_list_of_files[["file1"]] 检索file1

标签: r object character


【解决方案1】:

你在找get()???

a <- 1:5
> get("a")
[1] 1 2 3 4 5

【讨论】:

    【解决方案2】:

    如何从包含变量名的字符串中获取变量:

    > a = 10
    > string = "a"
    > string
    [1] "a"
    > eval(parse(text = string))
    [1] 10
    > eval(parse(text = "a"))
    [1] 10
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 2013-09-11
      • 1970-01-01
      相关资源
      最近更新 更多