По сути, я хочу построить график пауков для анализа чувствительности. Я хочу разбить свои данные на 10 траншей и найти среднее значение результата (в столбце 4) для каждого транша. Транши должны выбираться на основе 10-го, 20-го, 30-го, 40-го и т. Д. Процентилей для данных в каждом из столбцов переменной. Я получил это, чтобы работать, но я думаю, что должен быть намного более простой способ сделать это.В матрице найдите среднее значение столбца 4, связанное с значениями 20-30-го процентиля в столбце 1
Мой код:
##Make some data and put it into a matrix.
c <- 1000
v1 <- rnorm (c, 100, 15)
v2 <- rnorm (c, 80, 10)
v3 <- rnorm (c, 50, 5)
r1 <- ((v1*v2^2)/v3)
data <- cbind (v1,v2)
data <- cbind (data, v3)
data <- cbind (data, r1)
##Sort matrix by first column.
data <- as.matrix(data[order(data[,1]),])
##Find mean of column 4 values corresponding to the smallest 10% (and 20%, and 30%, etc.) of column 1 values.
a1 <- mean (data[1:(c/10),4])
a2 <- mean (data[(c/10):(2*c/10),4])
a3 <- mean (data[(2*c/10):(3*c/10),4])
a4 <- mean (data[(3*c/10):(4*c/10),4])
a5 <- mean (data[(4*c/10):(5*c/10),4])
a6 <- mean (data[(5*c/10):(6*c/10),4])
a7 <- mean (data[(6*c/10):(7*c/10),4])
a8 <- mean (data[(7*c/10):(8*c/10),4])
a9 <- mean (data[(8*c/10):(9*c/10),4])
a10 <- mean (data[(9*c/10):c,4])
##Combine into a vector.
a <- as.vector(c(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10))
##Repeat for data sorted by columns 2 and 3 respectively.
data <- as.matrix(data[order(data[,2]),])
a1 <- mean (data[1:(c/10),4])
a2 <- mean (data[(c/10):(2*c/10),4])
a3 <- mean (data[(2*c/10):(3*c/10),4])
a4 <- mean (data[(3*c/10):(4*c/10),4])
a5 <- mean (data[(4*c/10):(5*c/10),4])
a6 <- mean (data[(5*c/10):(6*c/10),4])
a7 <- mean (data[(6*c/10):(7*c/10),4])
a8 <- mean (data[(7*c/10):(8*c/10),4])
a9 <- mean (data[(8*c/10):(9*c/10),4])
a10 <- mean (data[(9*c/10):c,4])
b <- as.vector(c(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10))
data <- as.matrix(data[order(data[,3]),])
a1 <- mean (data[1:(c/10),4])
a2 <- mean (data[(c/10):(2*c/10),4])
a3 <- mean (data[(2*c/10):(3*c/10),4])
a4 <- mean (data[(3*c/10):(4*c/10),4])
a5 <- mean (data[(4*c/10):(5*c/10),4])
a6 <- mean (data[(5*c/10):(6*c/10),4])
a7 <- mean (data[(6*c/10):(7*c/10),4])
a8 <- mean (data[(7*c/10):(8*c/10),4])
a9 <- mean (data[(8*c/10):(9*c/10),4])
a10 <- mean (data[(9*c/10):c,4])
d <- as.vector(c(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10))
##Make a pretty chart
plot (a, type = "o", col = "red")
lines (b, type = "o", col = "blue")
lines (d, type = "o", col = "green")
+1 для обеспечения рабочий пример того, что вы пытались и что вы хотите достичь. – A5C1D2H2I1M1N2O1R2T1