【问题标题】:Cant manipulate global/local variables inside a function in R无法在 R 中的函数内操作全局/局部变量
【发布时间】:2020-10-26 16:11:21
【问题描述】:
dna = c("A","G","C","T")

x =sample(dna,50,replace =TRUE)


dna_f = function(x){
  dnastring <- ""
  for (val in x){
    paste(dnastring,val,sep="")
      
  }
  return(dnastring)
  
}
dna_f(x)

我正在尝试生成一个包含所有随机采样字母的字符串。 x 包含所有 50 个字母,我试图使用粘贴功能将它们组合成一个字符串。但是当我运行它时,输出是一个空字符串。我尝试将 dnastring 作为全局变量,因为我认为函数的范围可能在 R 中运行不同(我是 R 新手),但我得到了相同的输出。一些帮助将不胜感激。

【问题讨论】:

    标签: r


    【解决方案1】:

    这里不需要for 循环。尝试 pastecollapse 参数。

    dna_f = function(x){
      paste0(x, collapse = '')
    }
    
    dna_f(x)
    #[1] "CCTACCAACCCTTTCTAGCCCACTATGCATCACAACTGCGGTCTCATCAC"
    

    【讨论】:

      【解决方案2】:

      你忘记了dnastring &lt;-

      dna = c("A","G","C","T")
      
      x =sample(dna,50,replace =TRUE)
      
      
      dna_f = function(x){
        dnastring <- ""
        for (val in x){
          dnastring <- paste(dnastring,val,sep="")
          
        }
        return(dnastring)
        
      }
      

      输出:

      > dna_f(x)
      [1] "GGTCTGGCCGAACTACTGTACACCCCAAAGACAACGCCCCCGACGCTCTA"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-02
        • 2011-07-23
        • 1970-01-01
        • 2012-10-20
        • 1970-01-01
        • 2012-06-09
        • 1970-01-01
        • 2020-04-04
        相关资源
        最近更新 更多