首页 > 解决方案 > 无法在 R 中的函数内操作全局/局部变量

问题描述

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

解决方案


你不需要for在这里循环。尝试论证pastecollapse

dna_f = function(x){
  paste0(x, collapse = '')
}

dna_f(x)
#[1] "CCTACCAACCCTTTCTAGCCCACTATGCATCACAACTGCGGTCTCATCAC"

推荐阅读