다양한 길이의 문자열 행렬을 만들려고합니다.정수 값의 행렬을 사용하여 문자열 행렬의 길이를 결정합니다.
지금까지 매트릭스에있는 요소에 액세스하여 새 요소에 적용 할 수 없었습니다.
ranNumsVec <- runif(1000, min = 100, max = 1000)
ranNumsVec <- round(ranNumsVec, digits = 0)
clusterSeqLengths <- matrix(data = ranNumsVec, nrow = 10, ncol = 100,
byrow = FALSE, dimnames = NULL)
clusterSeqs <- matrix(data = NA, nrow = 10, ncol = 100, byrow = FALSE, dimnames = NULL)
는 ^이 내가 별도의 행렬에 특정 확률로 문자를 적용하기 위해 노력하고, 이러한 기능으로
정상입니다. (문자열의 행렬)로 구성되며, 행렬 내의 각 문자열은 위의 임의의 Nums Vec
에 저장된 임의의 숫자로 결정됩니다. 마지막으로 위에 표시된대로 길이 100-1000의 ATGC 1000 시퀀스의 행렬을 만들려고합니다.
lengthSmallString <- function(clusterSeqLengths)
clusterSeqs <- paste(sample("A", "C", "G", "T"), c clusterSeqLengths,replace=TRUE ,prob=c(0.2, 0.55, 0.1, . .15))
fillCharsToLength <- function(clusterSeqs)
clusterSeqs <- apply(clusterSeqs, 2, lengthSmallString, simplify = TRUE, USE.NAMES
= FALSE)
매트릭스를 반복하여 올바르게 반복하고 붙여 넣기 기능을 특정 길이의 문자열에 적용하는 방법을 잘 모릅니다. 나는 루프를 시도했지만 내가 정확하게 문제를 이해한다면 당신은 무작위로 샘플링 값 길이 5 c("A","C","G","T")
등의 순서를 기대하고 5 clusterSeqLengths[1,1]
에있는 경우는, 나에게 아주 멀리
for(i=1:nume1(array) in clusterVectorNums)
{
for(j in clusterVectorNums)
{
seqLength <- ranNumsVec[i,j]
clusterSeqs[i,j] <- paste(sample(c("A", "C", "G", "T"),
seqLength, replace=TRUE ,prob=c(0.2, 0.55, 0.1, 0.15)),
collapse="")
}
}
2 코드의 함수 정의 나에게 오히려 이상하게 보일 각 셀에 기능
f
을 적용index = c(1,2)
와apply
를 사용, 그래서 편집하려고하지 않았다. 제발, 다시 확인하고 수정하십시오. – Uwe