Вы уверены, что ожидаемый результат правильный?Я думаю, что есть ошибка в вычислении медианы в вашем вопросе, как также указано в комментариях.Вы можете сделать это следующим образом:
library(dplyr)
df$V1 <- as.numeric(as.factor(df$V1))
values <- df %>% group_by(V1,V2) %>% summarise(median=median(V3))
new_df <- matrix(0,nrow=length(unique(df$V1)), ncol=20)
for(i in 1:nrow(new_df)){
for(j in 1:ncol(new_df)){
value <- values$median[values$V1==i & values$V2==j]
if(length(value)>0){
new_df[i,j] = value
}
}
}
new_df
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,] 0 0 0 0 3.5 6 0 0 5 3.5 0 0 0 0 0 0 0 0 0 0
[2,] 0 0 6 2 0.0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0
Результат немного отличается.