gpt4 book ai didi

r - 在 R 2.14.1 中, 'by' 参数中的错误符号是什么意思?

转载 作者:行者123 更新时间:2023-12-01 18:59:41 24 4
gpt4 key购买 nike

这是我的代码

slidingwindowplotATGC = function(windowsize, inputseq) 
{

starts = seq(1, length(inputseq)-windowsize, by = windowsize)
n = length(starts)
chunkGs = numeric(n)
chunkAs = numeric(n)
chunkTs = numeric(n)
chunkCs = numeric(n)
for (i in 1:n) {
chunk = windowsize[starts[i]:(starts[i]+9999)]
chunkG = sum("g" == chunk)/length(chunk)
chunkA = sum("a" == chunk)/length(chunk)
chunkT = sum("t" == chunk)/length(chunk)
chunkC = sum("c" == chunk)/length(chunk)
chunkGs[i] = chunkG
chunkAs[i] = chunkA
chunkTs[i] = chunkT
chunkCs[i] = chunkC
}
plot(starts,chunkGs,type="b",ylim=c(min(min(chunkAs),min(chunkTs),min(chunkCs),min(chunkGs)),max(max(chunkAs),max(chunkTs),max(chunkCs),max(chunkGs))),col = "red")
points(starts,chunkTs,col = "blue")
points(starts,chunkAs,col = "green")
points(starts,chunkCs)

}

我收到以下错误消息,

Error in seq.default(1, length(inputseq) - windowsize, by = windowsize) : 
wrong sign in 'by' argument

我以前在运行此类代码时从未遇到过这种情况,事实上,我重新运行了以前运行良好的旧代码,只是这次我收到了这条错误消息,它似乎根本没有任何意义!在我完全发疯之前我需要帮助...也许我只是不擅长这个程序,但在我看来它有自己的想法...在关于 ylim 函数之前我也收到了一条错误消息,指出它需要是一个有限值,这就是我给它的值?救命!!!

最佳答案

改变

starts = seq(1, length(inputseq)-windowsize, by = windowsize)

starts = seq(1, nchar(inputseq)-windowsize, by = windowsize)

假设您使用字符向量作为输入,例如

slidingwindowplotATGC(3, "ATAGACGATACGATACCCCGAGGGTAGGTA")

预计到达时间:除了这种差异之外,如何使用字符向量还存在一些非常严重的问题。例如:

 windowsize[starts[i]:(starts[i]+9999)]
  1. 为什么看起来您正在从 windowssize 中进行选择,而它只是窗口大小的整数?您是否尝试从inputseq中进行选择?

  2. 即使您从inputseq中进行选择,执行此操作的方法也是substr(inputseq, start, stop)

  3. starts[i]+9999 从哪里来?您的意思是 starts[i]+windowsize 吗?

您应该重新开始并仔细考虑您想要做什么,并学习在 R 中执行此操作的正确工具。

预计到达时间:这是您尝试执行的操作的建议重写(您需要首先安装动物园软件包):

library(zoo)

slidingwindowplotATGC = function(windowsize, inputseq)
{
print(nchar(inputseq)-windowsize)
s = strsplit(inputseq, "")[[1]]
starts = seq(1, nchar(inputseq)-windowsize, by = windowsize)
n = length(starts)
letters = c("a", "c", "g", "t")
colors = c("green", "black", "red", "blue")
counts = t(sapply(letters, function(l) rollapply(s, windowsize, function(x) mean(x == l))))
plot(counts[1, ], type="l", col=colors[1])
for (i in 2:4) {
points(counts[i, ], type="l", col=colors[i])
}
print(counts)
}

slidingwindowplotATGC(10, "aagaaaagatcaaagaccagccgccccaccccccagagccccccc")

这应该可以帮助您完成大部分工作。之后,你就得靠自己了;-)

关于r - 在 R 2.14.1 中, 'by' 参数中的错误符号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com