ниже приведены некоторые фиктивные данные.
Предположим, у меня есть фрейм данных
df = data.frame(source = c("X1", "X2", "X3", "X4", "X5", "X6", "X7", "X8", "X9", "X10",
"X11", "X12", "X13", "X14", "X15", "X16", "X17", "X18", "X19", "X110"),
Destination = c("X3","X5","X17", "X20", "X20","X1", "X2", "X3", "X7", "X10",
"X13","X15","X7", "X1", "X20","X17", "X2", "X3", "X7", "X10"),
weight = seq(1,1.95,by=0.05))
Затем у меня есть некоторые коэффициенты шансов для Destinations X1:X3
и соответствующие стандартные отклонения, и я хочу 10 раз случайным образом выбрать из каждого коэффициента шансов и соответствующего стандартного отклонения
OR_dat <- c(1.55,1.39,1.77)
sds <- c(0.2925175, 0.4775346, 0.1603566)
n <- 10
normv <- function( n , mean , sd ){
out <- rnorm( n*length(mean) , mean = mean , sd = sd )
return( matrix( out , ncol = n , byrow = FALSE ))
}
RR_neighbour_1 <- data.frame(t(normv(n, OR_dat , sds )))
colnames(RR_neighbour_1) <- c("X1", "X2", "X3")
Что мне действительно нужно, так это объединить матрицу с data.frame, посмотрев на значение в столбце с заголовком "Destination"
, сопоставив его с именем столбца матрицы с заголовком RR_neighbour_1
, а затем создав дополнительные строки. ввести распределение. Вывод должен закончиться следующим образом:
![enter image description here](https://i.stack.imgur.com/0ytjg.png)