[英]Averaging quadrants in a matrix using R
我試圖在24X16 matrix
平均4個象限的象限。 矩陣被分成三(3-8X16s)
並且在每個部分中都有重復的象限,分別被指定為中高(這些是實驗條件)。
我的問題有兩個:1)我試圖取消列出4的選擇以計算均值,然后對下一個4的選擇重復該過程,直到我完成了第三個選擇。 將所有這些值並置為名稱lo_siRNA_average會返回"unexpected symbol"
錯誤:
lo_siRNA_average <- c(mean(unlist(expData[1:2,1:2])), mean(unlist(expData[3:4,1:2])), mean(unlist(expData[5:6,1:2])), mean(unlist(expData[7:8,1:2])), mean(unlist(expData[9:10,1:2])), mean(unlist(expData[11:12,1:2])), mean(unlist(expData[13:14,1:2])), mean(unlist(expData[15:16,1:2])) mean(unlist(expData[1:2,3:4])), mean(unlist(expData[3:4,3:4])), mean(unlist(expData[5:6,3:4])), mean(unlist(expData[7:8,3:4])), mean(unlist(expData[9:10,3:4])), mean(unlist(expData[11:12,3:4])), mean(unlist(expData[13:14,3:4])), mean(unlist(expData[15:16,3:4])), mean(unlist(expData[1:2,5:6])), mean(unlist(expData[3:4,5:6])), mean(unlist(expData[5:6,5:6])), mean(unlist(expData[7:8,5:6])), mean(unlist(expData[9:10,5:6])), mean(unlist(expData[11:12,5:6])), mean(unlist(expData[13:14,5:6])), mean(unlist(expData[15:16,5:6])), mean(unlist(expData[1:2,7:8])), mean(unlist(expData[3:4,7:8])), mean(unlist(expData[5:6,7:8])), mean(unlist(expData[7:8,7:8])), mean(unlist(expData[9:10,7:8])), mean(unlist(expData[11:12,7:8])), mean(unlist(expData[13:14,7:8])), mean(unlist(expData[15:16,7:8])))
Error: unexpected symbol in "(expData[1:2,1:2])), mean(unlist(expData[3:4,1:2])), mean(unlist(expData[5:6,1:2])), mean(unlist(expData[7:8,1:2])), mean(unlist(expData[9:10,1:2])), mean(unlist(expData[11:12,1:2])), mean(unl"
2)有沒有辦法將矩陣位置自動循環成循環,所以不會那么長?
如上所述:重塑矩陣並使用apply / aggregate。
library(reshape2)
set.seed(1)
expData <- matrix(rnorm(24*16), ncol = 16)
df <- melt(expData)
df$rowInd <- rep(1:8, each = 3)
df$colInd <- rep(1:8, each = 48)
res <- aggregate(value ~ rowInd + colInd, df, mean)
# Check if this is what you want:
aggregate(value ~ rowInd + colInd, df, mean)[1,"value"] == mean(expData[1:3, 1:2])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.