[解決済み] R 2.14.1 の引数 'by' の符号がおかしいのはどういう意味ですか?
質問
以下は私のコードです。
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)
のような文字ベクトルをinputseqとして使用していると仮定します。
slidingwindowplotATGC(3, "ATAGACGATACGATACCCCGAGGGTAGGTA")
ETA: その違いはさておき、文字ベクトルの使い方に非常に大きな問題があります。たとえば
windowsize[starts[i]:(starts[i]+9999)]
-
なぜwindowsizeから選択しているように見えるのか、それは単にウィンドウサイズを整数で表しているだけなのでは?inputseqから選択しようとしたのでしょうか?
-
inputseqから選択していたとしても、その方法は
substr(inputseq, start, stop)
-
はどこにあるのでしょうか?
starts[i]+9999
から来るのでしょうか?つまりstarts[i]+windowsize
?
やり直して、何をしようとしているのかをよく検討し、Rの中でそれを行うための適切なツールを学ぶべきでしょう。
ETA: あなたがやろうとしていることの書き換え案です(最初にzooパッケージをインストールする必要があります)。
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")
これでだいたいのことはできるはずです。それ以降は自己責任でお願いします;-)
関連
-
[解決済み】knitrのドキュメントでinstall.packagesが失敗する。"ミラーを設定せずにCRANを使おうとしている"
-
[解決済み】エラー:ベクターメモリの枯渇(制限に達したか) R 3.5.0 macOS
-
[解決済み] write.tableしようとすると、未実装の型リストが表示される。
-
[解決済み】reshape2 meltの警告メッセージ
-
[解決済み】rbind(deparse.level, ...)でエラー:引数の列の数がRにマッチしていない
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】二項演算子への非数値引数【非公開
-
[解決済み】ggplot2でのプロット:「Error: カテゴリ軸のY軸に "Discrete value supplied to continuous scale "と表示される。
-
[解決済み】Rで、Error: ggplot2 doesn't know how to handle of data of class numericに対処する。
-
[解決済み] Rの代入演算子"="と"<-"の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】R: 複数行の ggplot2 コマンドで「単項演算子エラー」が発生する。
-
[解決済み] 不適合な配列のコードエラー
-
[解決済み】値を置き換えようとすると、"データフレームの添え字の割り当てで欠損値は許可されない"
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】reshape2 meltの警告メッセージ
-
[解決済み】GLM解析での警告
-
[解決済み】Rエラー。"新しい列は既存の列の後に穴を空ける"
-
[解決済み】ggplot boxplotでPosition-dodge警告?
-
[解決済み】Rヒストグラムの範囲エラー:いくつかの'x'がカウントされない; 'break'が'x'の範囲に及ばないかもしれない
-
[解決済み】起動時にパーをデフォルト値にリセットする方法