運行相同的代碼。你爲什麼編輯by=3
?您想創建idx = 1, 3, 5 ...
。 by=3
,將創建1, 4, 7...
。您的數據,只要它是在格式Time, data, Time, data, Time, data, ..., ...
,您可以使用相同的代碼
require(IRanges)
# by equals 2 because we want to get the `Time` column index every time
idx <- seq(1, ncol(data), by=2)
# idx is now 1, 3, 5. It will be passed one value at a time to `i`.
# that is, `i` will take values 1 first, then 3 and then 5 and each time
# the code within is executed.
o <- lapply(idx, function(i) {
ir1 <- IRanges(start=seq(0, max(data[[i]]), by=401), width=401)
ir2 <- IRanges(start=data[[i]], width=1)
t <- findOverlaps(ir1, ir2)
d <- data.frame(mean=tapply(data[[i+1]], queryHits(t), mean))
cbind(as.data.frame(ir1), d)
})
讓我對這樣的數據:
# > o
# [[1]]
# start end width mean
# 1 0 400 401 1.05
#
# [[2]]
# start end width mean
# 1 0 400 401 1.1
#
# [[3]]
# start end width mean
# 1 0 400 401 1.383333
你有沒有運行** **完全相同的代碼我用三個樣本寫了這些數據?它應該適用於任何數量的標本。這就是爲什麼我們採用其他所有列並使用'lapply'運行。這對我來說可以。也許你應該向我們展示你想要的輸出......? – Arun 2013-02-22 07:14:13
如果他們回答你的問題,請接受答案。 – Arun 2013-02-22 07:19:22
也在這裏:請閱讀[FAQ](http://stackoverflow.com/faq)如何提出一個問題:給它一個有意義的標題是一開始。 – 2013-02-25 12:38:15