我有一个包含 DNA 序列字符串的向量:
x <- c("ATTAGCCGAGC", "TTCCGGTTAA")
Run Code Online (Sandbox Code Playgroud)
我想根据规则将这些字符串转换为总和
A <- 2
T <- 2
G <- 4
C <- 4
Run Code Online (Sandbox Code Playgroud)
这样 ATTAGCCGAGC 就会被翻译为“2+2+2+2+4+4+4+4+2+4+4”,最终输出将是“34”。
期望的输出:由原始向量 X 的一列和“总和变换”的另一列组成的数据帧。
谢谢。
我希望使用“T”不会有问题。
您可以使用值创建一个命名向量,分割字符串,匹配和求和,即
vals <- setNames(c(2, 2, 4, 4), c('A', 'T', 'G', 'C'))
sapply(strsplit(x, ''), \(i)sum(vals[i]))
#[1] 34 28
Run Code Online (Sandbox Code Playgroud)
将其放入这样的数据框中,
data.frame(string = x,
val = sapply(strsplit(x, ''), \(i)sum(vals[i])))
string val
1 ATTAGCCGAGC 34
2 TTCCGGTTAA 28
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |