R:如何更改矩阵数组?
我有一个矩阵,比如:R:如何更改矩阵数组?,r,matrix,sequence,bioinformatics,R,Matrix,Sequence,Bioinformatics,我有一个矩阵,比如: "aaa" 28 "aac" 8 "aag" 20 我想用K替换aaa,用N替换aac,用K替换aag。如何使用R来实现这一点?这里有很多选项。不幸的是,你没有表现出任何努力来解决问题,甚至没有表现出清晰和可复制性。例如,使用ifelse: 编辑 如果我想用K替换aaa,用N替换aac,用G替换aag: dat$V1 <- with(dat,ifelse(V1 == 'aaa', 'K',
"aaa" 28
"aac" 8
"aag" 20
我想用K替换aaa,用N替换aac,用K替换aag。如何使用R来实现这一点?这里有很多选项。不幸的是,你没有表现出任何努力来解决问题,甚至没有表现出清晰和可复制性。例如,使用ifelse: 编辑 如果我想用K替换aaa,用N替换aac,用G替换aag:
dat$V1 <- with(dat,ifelse(V1 == 'aaa',
'K',
ifelse(V1=='aac','N','G')))
dat
V1 V2
1 K 28
2 N 8
3 G 20
这可能更接近于您想要做的事情:
## if necessary, install the package first:
## source("http://bioconductor.org/biocLite.R")
## biocLite("Biostrings")
library(Biostrings)
d <- data.frame(string=c("aaa","aac","aag"),count=c(28,8,20))
tfun <- function(x) as.character(translate(DNAString(x)))
transform(d,aa=sapply(string,tfun))
## string count aa
## 1 aaa 28 K
## 2 aac 8 N
## 3 aag 20 K
将第一列定义为向量,然后使用$进行替换,但我没有成功。我对您的新示例aag->G有点困惑;如果你能给出一些关于生物信息学目标的背景,也许Biostrings包可以很容易地做到…@agstudy:我试着简单地问我的问题。如果我想用K替换aaa,用N替换aac,用G替换aag,我应该如何更改代码?@Toobabassi Daloii我编辑我的答案。@Ben Bolker:你说得对,但我想在没有任何生物化学软件包的情况下这样做。只是出于好奇,为什么?@Ben Bolker:这是我项目的一部分
## if necessary, install the package first:
## source("http://bioconductor.org/biocLite.R")
## biocLite("Biostrings")
library(Biostrings)
d <- data.frame(string=c("aaa","aac","aag"),count=c(28,8,20))
tfun <- function(x) as.character(translate(DNAString(x)))
transform(d,aa=sapply(string,tfun))
## string count aa
## 1 aaa 28 K
## 2 aac 8 N
## 3 aag 20 K
transform(d,string=sapply(string,tfun))