【发布时间】:2021-09-28 10:20:33
【问题描述】:
我有一个看起来像的 data.frame
df <- data.frame(P1 = c("ATG","GTA","GGG","GGG"), P2 = c("TGG","GAT","GGG","GCG"))
我想使用以下函数将每个 DNA 密码子转换为氨基酸(但任何翻译选项都是可行的),并输出相同的 data.frame,但使用单字母氨基酸而不是密码子:
library(Biostrings)
library(seqinr)
translate_R <- function(x)
{
translate(s2c(as.character(x)))
}
它适用于 data.frame 的各个元素
> translate_R(df[1,1])
[1] "M"
但试图将其应用于整个 data.frame 是行不通的。我错过了什么?我不明白为什么会出现错误,因为谷歌搜索如何做到这一点表明它应该可以工作。我猜缺少一些基本的东西。
> df[] <- lapply(df, translate_R)
Error in seq.default(from = frame + 1, to = frame + l, by = 3) :
wrong sign in 'by' argument
In addition: Warning message:
In s2c(as.character(x)) :
Error in seq.default(from = frame + 1, to = frame + l, by = 3) :
wrong sign in 'by' argument
【问题讨论】:
标签: r bioconductor