I have a df that have three columns and several rows. I am trying to create a list using the below loop but it is failing at the step where i need to populate the list with more than one result. Can somebody point to me where i am going wrong?
Here is my subset of df
Gene kaks chr
1 Bra011025 0.5909820 A01
2 Bra011027 0.3684600 A01
3 Bra011028 0.2126320 A01
4 Bra011030 0.0910217 A01
5 Bra011033 0.2412330 A01
6 Bra011034 0.1092790 A01
And here is my loop
results <- list()
chro <- c("A01", "A02", "A03", "A04", "A05", "A06", "A07", "A08", "A09", "A10")
for(i in 1:10) {
for(j in c("A01", "A02", "A03", "A04", "A05", "A06", "A07", "A08", "A09", "A10")) {
simulated.index <- sample(1:nrow(allData),sum(allData$chr==j))
simulated.kaks <- allData$kaks[simulated.index]
simulatedNot.kaks <- allData$kaks[-simulated.index]
results[[j]] <- mean(simulated.kaks)-mean(simulatedNot.kaks)
}
}
The output contains only one value..
> head(results)
$A01
[1] 0.003432181
$A02
[1] -0.03501376
$A03
[1] -0.0003581717
$A04
[1] -0.01792963
$A05
[1] -0.01241799
$A06
[1] 0.002551261
results[[j]] <- mean(simulated.kaks)-mean(simulated.kaks)supposed to beresults[[j]] <- mean(simulated.kaks)-mean(simulatedNot.kaks)?jvalues. Are these results not correct?Error in*tmp*[[i]] : subscript out of bounds