编写一个函数以包含gsub用于输入并输出子字符串

时间:2017-12-10 03:48:09

标签: r function substring

使用此字符串:

dna_string
[1] "ACCTGTCATCATCCCGCTCGCTTA"

我正在尝试编写一个将取代" T"与" U"并将结果输出为三元组,例如" ACC" " TGT"等等。

我开始编写的函数是:

dna_converter <- function(gsub("T", "U", x=dna_string)){
  rna_triplets <- substring(dna_string, seq(1, 22, 3), seq(3, 24, 3))
  return(rna_triplets)
}

我收到错误,R不会根据需要输出结果。请问你能告诉我这里可能出错的地方吗?

2 个答案:

答案 0 :(得分:1)

你的函数参数的规范很奇怪 - 我就是这样做的:

dna_string <- "ACCTGTCATCATCCCGCTCGCTTA"
dna_converter <- function(x = dna_string, From = "T", To = "U", By = 3) {
    foo <- nchar(x)
    substring(gsub(From, To, x), 
              seq(1, foo - 1, By), 
              seq(By, foo, By))
}   
dna_converter()
[1] "ACC" "UGU" "CAU" "CAU" "CCC" "GCU" "CGC" "UUA"

答案 1 :(得分:0)

您正在尝试将函数体作为函数参数。函数定义为

ext4_mark_iloc_dirty

尝试:

handle_t->h_type

应该清理子串参数,不要指定特定的长度,只是切成3块,但我在手机上,不能在R中试用。稍后会清理这个答案!