Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:如何更改矩阵数组?_R_Matrix_Sequence_Bioinformatics - Fatal编程技术网

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))