この問題を完全にフォローしているかどうかはわかりません。私の理解が正しければ、各プロットの範囲が 11111 であることを確認したいのですが (この例ではとにかく)、上限値と下限値は大きく異なります。したがって、現在、必要なすべての可能な上限と下限のテーブルを作成する方法を探しており、プロットするときにそれらを調べたいと考えています。
プロット ステートメントを記述して、最小値と最大値が常に 11111 離れていることを確認するだけで、はるかに簡単に実行できることを提案します。
1 回のループ反復中に start <- 235000、end <- 240000、および trait <- B を取得したとします。このようにコードを構成できますか?
diff <- end-start
gap <- 11111-diff
plot(thing_you_plot,xlim(start-(gap/2),end+(gap/2))
数字で:
diff <- 240000-235000 (5000)
gap <- 11111-5000 (6111)
plot(thing_you_plot,xlim(235000-(6111/2),240000+(6111/2))
(x limits are: 231944.5,243055.5, making the plot 11111 in length)
明らかに、必要に応じて、floor 関数と Ceiling 関数を使用して、小数ではなく四捨五入することもできます。あなたの質問からは、「特性」が次元に実際にどのように影響するかは明らかではありません。同じ次元を使用してプロットされた 2 つの特性 (B と C) を使用できる場合、なぜテーブルが必要なのですか? 単純な関数を使用して各プロットに対してそれを行うだけで、はるかにうまくいくと思います。
リビジョンに基づいて編集:
ジョシュは私を打ち負かしましたが、私はほとんどすべてをタイプしたので、ここで再びです。
df <- data.frame(trait=c("A","B","C","D"),
start=c(123456,234546,234546,345678),
end=c(134567,245678,245678,356789))
trait <- "C"
start <- 235000
end <- 240000
xmin <- df[which(start > df$start & end < df$end & trait == df$trait),2]
xmax <- df[which(start > df$start & end < df$end & trait == df$trait),3]