У меня в списке хранятся следующие данные:
set.seed(12345)
df1 = data.frame(replicate(10,sample(0:500,100,rep=TRUE)))
df2 = data.frame(replicate(10,sample(0:500,100,rep=TRUE)))
list = list(df1, df2)
Как мне сделать следующее:
1) Для каждого столбца получить долю каждого элемента в столбцесумма (т. е. каждый элемент делится на сумму в столбце), а затем возводит в квадрат долю
2). Возьмем сумму каждого столбца из шага 1
. В результате получается список2 вектора (по одному на каждый из df1 и df2), содержащих по 10 баллов каждый.
Мой код, показанный ниже, не работает.Любой совет приветствуется.Большое спасибо заранее!
do.call(cbind,lapply(list, function(x) {
x1 <- ((x/colSums(x))^2)[col(x)]
sapply(x1, function(y) sum(y))}))